Android 如何处理临时终止然后重新启动的应用程序
假设应用程序运行时,活动B位于堆栈顶部,而活动A是具有清单中定义的启动意图的活动。然后,我的应用程序进入后台(不可见),系统会暂时终止我的应用程序并将其重新启动 在这一点上,系统首先启动哪个活动,活动A(清单中定义的启动意图)还是活动B 另外,如果应用程序被临时终止,那么它是否会立即重新启动,或者可能会停止一段时间 我的应用程序有很多动态状态,它还登录到服务器,因此当应用程序被临时终止时,我的应用程序的状态可以在这段时间内更改,当它重新启动时,我将再次启动我的应用程序,重新登录并更新其所有状态。有什么办法可以避免这种情况吗Android 如何处理临时终止然后重新启动的应用程序,android,android-intent,android-activity,Android,Android Intent,Android Activity,假设应用程序运行时,活动B位于堆栈顶部,而活动A是具有清单中定义的启动意图的活动。然后,我的应用程序进入后台(不可见),系统会暂时终止我的应用程序并将其重新启动 在这一点上,系统首先启动哪个活动,活动A(清单中定义的启动意图)还是活动B 另外,如果应用程序被临时终止,那么它是否会立即重新启动,或者可能会停止一段时间 我的应用程序有很多动态状态,它还登录到服务器,因此当应用程序被临时终止时,我的应用程序的状态可以在这段时间内更改,当它重新启动时,我将再次启动我的应用程序,重新登录并更新其所有状态。
谢谢。当然,如果应用程序被终止,那么它应该从启动活动开始。如果有登录选项,那么你也应该保留“记住我”选项,这样,如果应用程序被终止,你就可以获得应用程序的状态,如果设置了“记住我”,则执行自动登录,否则只需通过登录过程启动应用程序。我不同意@Keshav所说的。我认为上次被销毁的活动是重新创建并向用户显示的活动。我的信念基于设备配置发生变化时发生的情况——当前的活动实际上被破坏了,同样的活动被重新创建,并且这不是第一次启动活动 至于您应该做什么,当您的应用程序在后台被终止或销毁时,您必须参考以下指南: 你写道: 假设应用程序正在运行,活动B位于 堆栈和活动A是具有启动意图的活动 在清单中定义。然后我的应用程序进入后台(不是 可见),系统会暂时终止我的应用程序并将其 再往后退 发生以下情况:
应用程序
对象被实例化,并对其调用onCreate()
ActivityB
(任务堆栈上的顶部活动)的实例,并对其调用onCreate()
ActivityA
)仅在ActivityB
结束(完成或用户按下后退按钮)时才会实例化
你无法阻止Android在你的应用程序处于后台时杀死它。但是,您可以确定这已经发生,并做出相应的反应。最简单的方法是在根活动或自定义
应用程序
类中设置一个静态成员变量*,当创建根活动并执行其初始化时,将该变量设置为true
。在ActivityB
的onCreate()
中,检查此变量是否设置为true
。否则,您的应用程序已重新启动,因此您现在可以做出反应。例如,您可以将用户重定向回根活动,并强制从头开始启动应用程序。或者,您可以告诉用户在重新初始化应用程序时等待,等等。我的问题是应用程序被终止时,而不仅仅是一个活动。此外,我无法保存我的状态并将其恢复,因为当我的活动结束时,我的状态已更改,无法恢复旧的已保存状态。当应用程序被终止时,整个任务将终止。任务是一组活动,具有与其关联的后堆栈。因此,如果整个任务被终止,并且如果用户或系统再次启动应用程序,那么将创建一个新任务(在其后台堆栈中没有活动),然后@keshav所说的将是真的。有关任务的更多信息,请访问