Java 开始活动后,startActivity()会产生什么后果?
假设我有活动A和活动B 在A中,我有一个按钮,单击该按钮时运行以下代码Java 开始活动后,startActivity()会产生什么后果?,java,android,android-studio,Java,Android,Android Studio,假设我有活动A和活动B 在A中,我有一个按钮,单击该按钮时运行以下代码 startActivity(new Intent(this, ActivityB.class)); startActivity(new Intent(this, ActivityA.class)); 在B中,我有一个按钮,单击该按钮时运行以下代码 startActivity(new Intent(this, ActivityB.class)); startActivity(new Intent(this, Activi
startActivity(new Intent(this, ActivityB.class));
startActivity(new Intent(this, ActivityA.class));
在B中,我有一个按钮,单击该按钮时运行以下代码
startActivity(new Intent(this, ActivityB.class));
startActivity(new Intent(this, ActivityA.class));
因此,当应用程序启动且用户执行以下操作时:
- 点击活动A中的按钮(他进入活动B)
- 点击活动B中的按钮(他返回活动A)
- 再次单击活动A中的按钮(再次转到活动B)
if(activity has already started)
{
doNotStartActivityButSimplyPutItAtTop();
}
else
{
startActivity(new Intent.....);
}
是的,你的假设是正确的,android能够管理这些活动,并且它们保持了适当的堆栈
如果只有两个活动,则可以使用singletop launcher模式,这样堆栈中只剩下两个活动。android系统可能会释放堆栈中以前活动的资源。为避免丢失“活动”的当前状态,您可能必须将其保存,然后在重新创建“活动”时恢复。请参阅。Android足够智能,如果活动在堆栈中,则它将出现在前台,除非您强制启动,即添加标志,如
FLAG\u activity\u SINGLE\u TOP
等。