Android:当应用程序被销毁和重新创建时总是启动启动活动

Posted

技术标签:

【中文标题】Android:当应用程序被销毁和重新创建时总是启动启动活动【英文标题】:Android: always launch start activity when app is destroyed and recreated 【发布时间】:2015-10-08 13:59:13 【问题描述】:

假设我有两个活动,A 和 B。 A - 是我的启动活动,它还处理初始化部分。当我启动应用程序时,Activity A 被启动或启动,然后它被导航到 Activity B。然后我按home button,等待一段时间,让应用程序被销毁。然后我再次按下我的应用程序图标,我的 android (5.0) 会记住我停止使用的活动,并启动它(活动 B)。和应用程序崩溃,因为没有发生初始化。在任何情况下如何强制android启动我的活动A?

我也试过android:clearTaskOnLaunch="true"

如果它是活动 B,我什至尝试过 finish() 活动,但无论如何都会调用片段的 onCreate,并且应用程序崩溃。

任何帮助将不胜感激。提前致谢

【问题讨论】:

如果您想在按下主页按钮时终止活动。在活动的onpause() 或onStop() 方法中完成() 活动B。 我不希望它被杀死!但是如果它被杀死了,那么它应该通过活动A来启动 是的,这就是这里发生的事情。一旦 B 完成(),它将从活动 A 开始。 无论如何我都不应该杀死活动 B。无论如何这是不可能的。如果应用程序没有被杀死,我希望活动从活动 B 开始,以正常流程 你能告诉我你恢复活动时收到的错误日志吗.. 【参考方案1】:

为什么不在Activity B's onStop() 方法上调用finish();。一旦焦点离开活动,它可能会关闭您的Activity B,现在应用程序可以在重新启动时再次从Activity A 启动。

也许这可以帮助你...

【讨论】:

我不希望它被杀死!但是如果被android系统杀死了,则应该通过activity A启动 @AntonKizema 你能写出你的活动 B 的代码吗?你是在 Activity A 上调用 finish() 吗? 如果可能的话,请将 logcat 错误连同您的问题连同活动 B 的一些代码一起放入... 应该有解决我的问题的一般方法。该代码不会为您提供任何信息。我收到崩溃是因为活动 A 没有进行初始化。而且我不想在任何其他活动中进行初始化,原因有很多 @AntonKizema 检查 Activity B 中的 Initilised 值,如果这些值为 null,则从 Activity B 的 onCreate() 方法启动 Activity A。这可以解决您的问题。如果您可以提供其他详细信息,也可以通过其他方式解决问题。

以上是关于Android:当应用程序被销毁和重新创建时总是启动启动活动的主要内容,如果未能解决你的问题,请参考以下文章

从通知启动时防止重新创建活动活动

当 Android 小部件 RemoteViewService 被销毁时

应用程序被杀死时Android后台服务正在重新启动

Android开发——线程池

3.4 重新创建 Activity

Android活动生命周期 - 重新启动(销毁)应用程序不会删除对(自定义)监听器的引用?