我的应用程序有一个主要活动,偶尔会在某些用户操作上打开另一个活动(并保留在活动堆栈中)。
我的理解是,如果需要,Android可以决定在后台处理主要活动,尽管当前可见的活动将不会受到伤害。 我很确定我在过去(2 - 3年前)看过这种现象。
以下是问题 -
答案 0 :(得分:2)
我的理解是,如果需要,Android可以决定杀死主要活动
Android中没有main activity
概念。您的应用程序可以被整体杀死,或者一些未使用的元素可以被垃圾收集。
我很确定我已经看到过这种现象
这不是一种现象,而是正常的Android系统行为。
虽然应用程序位于前台,Android可能会在什么条件下决定终止后台活动?
真的没关系。所有您需要打扰的是,您可以被杀死/重新启动,并且知道您需要做的就是确保您的数据能够存活。
某些特定版本的Android /供应商是否有更多机会这样做?
同样 - 没关系。确保您的应用正确处理此类案例,就是这样。
如果我没记错的话,在这种情况下,可能会或可能不会调用活动的onStop。这个假设是对的吗?
不,除非您的过程真的被杀死,否则不会被垃圾收集。
答案 1 :(得分:1)
如果某项活动被另一项活动完全遮挡,则会停止该活动。它仍然保留所有状态和成员信息,但是,它不再对用户可见,因此它的窗口是隐藏的,当其他地方需要内存时,它通常会被系统杀死。
要回答您的问题,您的MainActivity将在新活动启动后立即停止,
您应该阅读活动生命周期: https://developer.android.com/reference/android/app/Activity.html