进程进行软重启时如何重启应用?

时间:2018-11-18 14:30:35

标签: android android-permissions android-6.0-marshmallow

编辑: 恐怕我最初的问题没有理解我的意图,因此我将其重新表述。 在某些情况下(权限撤销,内存清除),操作系统会“软”重启应用程序进程。当用户重新打开应用程序时,操作系统将启动在重新开始处理之前重新使用的上一个活动。有没有办法告诉操作系统不要尝试恢复应用程序的最后状态而只是从头开始?

2 个答案:

答案 0 :(得分:0)

使用此https://github.com/JakeWharton/ProcessPhoenix库。您可以使用此自定义重新启动。

在新过程中启动默认活动:

ProcessPhoenix.triggerRebirth(context);

或者,如果您要以特定的Intent启动:

Intent nextIntent = //...
ProcessPhoenix.triggerRebirth(context, nextIntent);

如果您想在后台和后台重新启动应用程序时重新启动应用程序,请android:noHistory="true"用于android Manifest.xml文件中的某些活动

答案 1 :(得分:0)

问题仍然存在,操作系统没有通知此类事件-除了手动处理该事件外,别无其他选择。例如。检查onCreate()中未被授予onResume()Activity的许可-然后采取相应措施,例如。清除后堆栈,然后为第一个片段充气。

唯一的罪魁祸首是分屏模式,其中不会触发onResume(),仅仅是因为它从未引起onPause()事件。我的意思是,一方面是权限设置,另一方面是应用程序。要处理此问题,有时需要检查权限状态。