android多个活动实例?

时间:2011-10-14 09:17:49

标签: android

我对活动多个实例有疑问。

例如)

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

2 个答案:

答案 0 :(得分:3)

如你所知,将只有一个A1实例出现。

  1. 如果你在去A2的时候没有完成A1那么新的实例就是 在回到A1时创建。
  2. 如果你没有完成那么背景运行A1的实例( 将会出现在前面。
  3. 这是示例

    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.
    

    这是我的第二点,没有完成();

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

    在这种情况下,如果你将从A2返回,那么A1已经在后台运行了,因为你在去A1时没有完成它。所以它会出现在前面。

答案 1 :(得分:2)

这取决于您在启动活动时在意图上设置的标志。例如,如果将它们设置为 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ,则将重用该活动,即没有多个实例。如果未设置任何标志,则您描述的方案将在堆栈上启动新活动。最终你会耗尽内存。只调用finish()会破坏活动实例