android 退出程序后自动重新启动,进程停止后控制Android Activity重新启动

2023-01-12 17:08:45

我的应用程序运行在运行Android Gingerbread 2.3.7的自定义版本的特殊设备上

在某些情况下系统将终止我的应用程序.我假设设备制造商考虑这些紧急情况,应立即关闭所有第三方应用程序,以便设备可以完成其主要任务.

我可以使用模拟器复制我在设备上看到的行为,并在DDMS中选择我的任务并单击"停止进程"按钮.这是我看到的行为.

我的应用程序通常会执行四个活动,活动A启动活动B,B启动活动C,C启动活动D.因此,当活动D在顶部运行时,我的堆栈是:

A B C D

如果此时进程终止,则活动D不会接收onPause()或onStop()调用.它没有机会拯救其国家.

在该过程停止后,Android的ActivityManager为我的应用程序启动一个新任务并启动Activity C.我认为这是重新启动崩溃的应用程序的标准Android行为.

我的问题是我能控制这种重启行为吗?如果Android要重新启动我的应用程序,我需要恢复活动堆栈,活动C没有意义独立运行(单击后退按钮将退出应用程序,这对此活动没有意义).

我可以阻止重启吗?我可以按顺序重新启动所有活动吗?我可以重新启动只是启动活动A吗?

我确实发现了这个有趣的讨论,我相信这解释了为什么重新启动Activity C而不是Activity D.

在重新启动活动时 - 如果运行前台活动的进程消失,如果系统没有有效的保存状态,系统将丢弃该活动(通常意味着它已暂停并且已将系统提供给系统暂停之前的onSaveInstanceState的结果).一旦决定是否抛弃该活动,它将恢复现在位于堆栈顶部的任何活动.如果这是你的一项活动 - 或者是因为你有一个在崩溃的那个后面,或者一个崩溃的那个在某种程度上它是稳定的暂停状态 - 那么它将再次开始你的过程以显示最高活动.

还有一些类似的问题,如防止活动堆栈被恢复?这个有趣的主题

  • 作者:露米 Lumi
  • 原文链接:https://blog.csdn.net/weixin_30600605/article/details/117530933
    更新时间:2023-01-12 17:08:45