Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 创建第一个活动实例后,如何从一个活动移动到另一个活动?_Android - Fatal编程技术网

Android 创建第一个活动实例后,如何从一个活动移动到另一个活动?

Android 创建第一个活动实例后,如何从一个活动移动到另一个活动?,android,Android,我有MainActivity.java,我想从中打开Activity A 假设我正在从main Activity打开活动A,我将使用以下代码: Intent i = new Intent(this,A.class); startActivity(i); 当我在活动A中时,我按下后退按钮。后退按钮将完成活动A并返回到main活动。因此,如果我重新启动活动A,它将从一开始重新启动。这不是我想要的。我只希望从活动a创建一个实例,因此如果我从a移动到MainActivity任意次数,它将不会重新启动,

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

假设我正在从
main Activity
打开
活动
A
,我将使用以下代码:

Intent i = new Intent(this,A.class);
startActivity(i);

当我在活动A中时,我按下后退按钮。后退按钮将完成活动A并返回到main活动。因此,如果我重新启动活动A,它将从一开始重新启动。这不是我想要的。我只希望从活动a创建一个实例,因此如果我从a移动到MainActivity任意次数,它将不会重新启动,它将保持最后一个状态。

当MainActivity启动另一个时,新活动,活动A被推到堆栈顶部并聚焦上一个活动保留在堆栈中,但已停止当活动停止时,系统将保留其用户界面的当前状态。

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

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

在MainActivity中,切换到Activity A并按下back按钮,Activity A将从堆栈中删除并销毁

再次从MainActivity导航到,活动自销毁后重新创建。这就是它的工作原理

有关更多详细信息,请查看以下链接中的后堆栈

关于如何开展活动的说明。有四种模式与Intent对象中的活动标志(FLAG_activity_*constants)结合使用,以确定调用活动处理Intent时应该发生什么

它们是:

  • 标准
  • 单顶
  • 单任务
  • 单实例

  • 但一旦活动被销毁,并且您需要导航到该活动,则会重新创建该活动

    只是想知道不应该将
    A.class
    作为第二个参数而不是
    A.java
    ?你是对的,很抱歉我更正了它。你可以直接调用finish()。但是如果我调用finish,它将关闭实际活动,使重新排序到前台的活动处于活动状态,但不会关闭它。感谢您的详细解释!所以你是说我不能用
    Intent
    s实现我想要的。我应该使用
    Tab
    s吗?
      android:launchMode