假设我有活动A和活动B。
在A中,我有一个按钮,单击该按钮将运行以下代码
startActivity(new Intent(this, ActivityB.class));
在B中,我有一个按钮,单击该按钮可运行以下代码
startActivity(new Intent(this, ActivityA.class));
因此,当应用程序启动且用户执行以下操作时:
单击活动A中的按钮(他进入活动B)
单击活动B中的按钮(他回到活动A)
再次单击活动A中的按钮(再次进入活动B)
在这种情况下,活动A和活动B是否每次都开始就占用了内存,或者Android是否足够聪明以知道活动已经开始并且仅需要放在栈顶?
因此,换句话说,如果确实确实阻塞了内存,那么会出现以下情况:
if(activity has already started)
{
doNotStartActivityButSimplyPutItAtTop();
}
else
{
startActivity(new Intent.....);
}
最佳答案
是的,您的假设是正确的android能够管理这些活动,并且它们为此维护适当的堆栈。
如果您只有两个活动,则可以使用singletop启动器模式,以便堆栈中仅保留两个活动。
关于java - 启动 Activity 后,startActivity()有什么后果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40480145/