我对活动多个实例有疑问。
例如)
A1是一个活动,A1使用startActivity()启动A2,然后A2使用startActivity()启动A1,当前系统中存在多少个A1实例?
答案 0 :(得分:3)
如你所知,将只有一个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.
这是我的第二点,没有完成();
Intent i=new Intent(A1.this,A2.class);
startActivity(i);
在这种情况下,如果你将从A2返回,那么A1已经在后台运行了,因为你在去A1时没有完成它。所以它会出现在前面。
答案 1 :(得分:2)
这取决于您在启动活动时在意图上设置的标志。例如,如果将它们设置为 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ,则将重用该活动,即没有多个实例。如果未设置任何标志,则您描述的方案将在堆栈上启动新活动。最终你会耗尽内存。只调用finish()会破坏活动实例