Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何处理临时终止然后重新启动的应用程序_Android_Android Intent_Android Activity - Fatal编程技术网

Android 如何处理临时终止然后重新启动的应用程序

Android 如何处理临时终止然后重新启动的应用程序,android,android-intent,android-activity,Android,Android Intent,Android Activity,假设应用程序运行时,活动B位于堆栈顶部,而活动A是具有清单中定义的启动意图的活动。然后,我的应用程序进入后台(不可见),系统会暂时终止我的应用程序并将其重新启动 在这一点上,系统首先启动哪个活动,活动A(清单中定义的启动意图)还是活动B 另外,如果应用程序被临时终止,那么它是否会立即重新启动,或者可能会停止一段时间 我的应用程序有很多动态状态,它还登录到服务器,因此当应用程序被临时终止时,我的应用程序的状态可以在这段时间内更改,当它重新启动时,我将再次启动我的应用程序,重新登录并更新其所有状态。

假设应用程序运行时,活动B位于堆栈顶部,而活动A是具有清单中定义的启动意图的活动。然后,我的应用程序进入后台(不可见),系统会暂时终止我的应用程序并将其重新启动

在这一点上,系统首先启动哪个活动,活动A(清单中定义的启动意图)还是活动B

另外,如果应用程序被临时终止,那么它是否会立即重新启动,或者可能会停止一段时间

我的应用程序有很多动态状态,它还登录到服务器,因此当应用程序被临时终止时,我的应用程序的状态可以在这段时间内更改,当它重新启动时,我将再次启动我的应用程序,重新登录并更新其所有状态。有什么办法可以避免这种情况吗


谢谢。

当然,如果应用程序被终止,那么它应该从启动活动开始。如果有登录选项,那么你也应该保留“记住我”选项,这样,如果应用程序被终止,你就可以获得应用程序的状态,如果设置了“记住我”,则执行自动登录,否则只需通过登录过程启动应用程序。

我不同意@Keshav所说的。我认为上次被销毁的活动是重新创建并向用户显示的活动。我的信念基于设备配置发生变化时发生的情况——当前的活动实际上被破坏了,同样的活动被重新创建,并且这不是第一次启动活动

至于您应该做什么,当您的应用程序在后台被终止或销毁时,您必须参考以下指南: 你写道:

假设应用程序正在运行,活动B位于 堆栈和活动A是具有启动意图的活动 在清单中定义。然后我的应用程序进入后台(不是 可见),系统会暂时终止我的应用程序并将其 再往后退

发生以下情况:

  • 将为您的应用程序创建一个新进程
  • 您的
    应用程序
    对象被实例化,并对其调用
    onCreate()
  • 将实例化
    ActivityB
    (任务堆栈上的顶部活动)的实例,并对其调用
    onCreate()
  • 您的根活动(
    ActivityA
    )仅在
    ActivityB
    结束(完成或用户按下后退按钮)时才会实例化


    你无法阻止Android在你的应用程序处于后台时杀死它。但是,您可以确定这已经发生,并做出相应的反应。最简单的方法是在根活动或自定义
    应用程序
    类中设置一个静态成员变量*,当创建根活动并执行其初始化时,将该变量设置为
    true
    。在
    ActivityB
    onCreate()
    中,检查此变量是否设置为
    true
    。否则,您的应用程序已重新启动,因此您现在可以做出反应。例如,您可以将用户重定向回根活动,并强制从头开始启动应用程序。或者,您可以告诉用户在重新初始化应用程序时等待,等等。

    我的问题是应用程序被终止时,而不仅仅是一个活动。此外,我无法保存我的状态并将其恢复,因为当我的活动结束时,我的状态已更改,无法恢复旧的已保存状态。当应用程序被终止时,整个任务将终止。任务是一组活动,具有与其关联的后堆栈。因此,如果整个任务被终止,并且如果用户或系统再次启动应用程序,那么将创建一个新任务(在其后台堆栈中没有活动),然后@keshav所说的将是真的。有关任务的更多信息,请访问