首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在创建它们的第一个实例之后从一个活动转移到另一个活动?

如何在创建它们的第一个实例之后从一个活动转移到另一个活动?
EN

Stack Overflow用户
提问于 2013-04-05 03:40:34
回答 1查看 230关注 0票数 0

我有MainActivity.java,我想从它中打开Activity A

假设我从Activity A打开MainActivity,我将使用以下代码:

代码语言:javascript
复制
Intent i = new Intent(this,A.class);
startActivity(i);

当我在活动A的时候,我按后退按钮。后退按钮将完成活动A并返回到MainActivity。因此,如果我重新启动Activity ,它将从一开始就重新启动。这不是我想要的。我只希望从MainActivity Activity A中创建一个实例,因此如果我尽可能多地从A移动到A,它将不会被重新启动,它将保持最后一个状态。

EN

回答 1

Stack Overflow用户

发布于 2013-04-05 04:15:09

当MainActiivty启动另一个新的活动时,活动A被推到堆栈的顶部,并获得焦点之前的活动保留在堆栈中,但已停止当活动停止时,系统保留其用户界面的当前状态.

当用户按后退按钮时,当前活动将从堆栈顶部弹出(活动被销毁),并恢复以前的活动(恢复其UI的前一状态)。堆栈中的活动从不重新安排,只有在当前活动启动时才从堆栈中推送到堆栈上,在用户使用后退按钮离开堆栈时才弹出。因此,后端堆栈作为“先入后出”对象结构运行。

注意:可以一次在后台执行多个任务。但是,如果用户同时运行多个后台任务,系统可能会开始销毁后台活动以恢复内存,从而导致活动状态丢失。

在您的MainActivity中,从活动A到活动A并按下按钮,活动A将从堆栈中停止并销毁。

同样,从MainActivty导航到A,活动被重新创建,因为它被破坏了。这就是它的工作原理。

有关更多细节,请查看下面链接中的back堆栈。

http://developer.android.com/guide/components/tasks-and-back-stack.html

代码语言:javascript
复制
  android:launchMode

关于如何开展这一活动的指导。意图对象中有四种模式与活动标志(FLAG_ACTIVITY_*常量)一起工作,以确定当调用活动来处理意图时应该发生什么。

它们是:

  1. 标准
  2. singleTop
  3. singleTask
  4. singleInstance

http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

但是,一旦活动被破坏,并且您需要导航到该活动,该活动将被重新创建。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15825515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档