假设我们有三个活动:A、B、C。进入顺序是A -> B -> C。通常从C回来的顺序是C -> B -> A。但是在Activity C时,我按Home键进入主屏幕。应用时间长了会被杀掉吗?如果它会被杀死,当我返回应用程序时,返回顺序仍然正确吗?
5 回答
您需要阅读此处找到的文档:
http://developer.android.com/reference/android/app/Activity.html
如果您的应用程序被终止,重新启动时它将在没有任何历史记录的情况下启动,并且不会有回栈,并且您的应用程序将转到 Activity A,前提是这是清单中设置的默认活动,如下所示:
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:label="@string/app_name"
android:name=".SplashScreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
(上面在我的一个应用程序中启动了一个启动画面,如果它被终止,那么这就是启动的活动)
为了进一步帮助,我附上了生命周期图:
如您所见,如果onDestroy()
被调用,则应用程序的生命周期结束。当它再次开始时,我们将开始一个新的生命周期。
在您启动应用程序后,它被杀死后它会打开主要活动。
当应用程序被杀死时,它将从您在清单中声明的主要活动开始。
1. Activity
始终处于以下状态之一:
一世。 Resumed:
该活动在 Foreground 中。
ii. Paused :
另一个活动在 Foreground 中,但this activity
仍然可见
iii. Stopped:
这个停止的活动是完全隐藏的。
2.你的情况是Stopped
状态。系统可以通过调用方法杀死这个停止活动finish()
,或者干脆杀死它的进程。
所以你从一开始就开始,你的 Back-Stack 中只有一个活动
不,因为当您的应用程序被杀死时,您的应用程序的任务状态不会被保存,并且在您的情况下将返回到主要活动,这将是 A