android多实例活动?

android多实例活动?,android,Android,我有一个关于活动多实例的问题 (例如) A1是一个活动,A1使用startActivity()启动A2,然后A2也使用startActivity()启动A1,当前系统中存在多少A1实例?如您所问,将只存在一个A1实例 如果您在转到A2时没有完成A1,那么将创建新实例 在返回A1时创建 如果您没有完成,那么A1的后台运行实例( 将在堆栈中)将出现在前面 下面是一个例子 Intent i=new Intent(A1.this,A2.class); startActivity(i); finish()

我有一个关于活动多实例的问题

(例如)


A1是一个活动,A1使用startActivity()启动A2,然后A2也使用startActivity()启动A1,当前系统中存在多少A1实例?

如您所问,将只存在一个A1实例

  • 如果您在转到A2时没有完成A1,那么将创建新实例 在返回A1时创建
  • 如果您没有完成,那么A1的后台运行实例( 将在堆栈中)将出现在前面
  • 下面是一个例子

    Intent i=new Intent(A1.this,A2.class);
    startActivity(i);
    finish();
    
    This is my point 1.In this case if you will come back from A2 then new instance will be created.
    
    这是我的第二点,没有结束()


    在这种情况下,如果您将从A2返回,则A1已经在后台运行,因为您在前往A1时尚未完成它。因此它将出现在前面。

    这取决于您在启动活动时设置的意图标志。例如,如果将它们设置为Intent.FLAG_ACTIVITY_REORDER_to_FRONT,则该活动将被重用,即没有多个实例。如果您没有设置任何标志,那么您描述的场景将在堆栈上启动一个新活动。最终你会耗尽内存。仅调用finish()将销毁活动实例

    只会出现一个实例。这取决于启动模式。看。@Android_疯狂-这不正确,请重新措辞,我不明白。假设我对所有活动启动调用都使用startActivity()。谢谢,那么您的观点是,在任何情况下,系统中最多会有一个可用的活动实例?是的。但这可能取决于使用标志的启动模式。但在您的情况下,它将只有一个。
    Intent i=new Intent(A1.this,A2.class);
    startActivity(i);