编辑:恐怕我最初的问题没有理解我想要的方式,所以我将重新表达它。在某些情况下(权限撤销、内存清理),操作系统对应用程序进程执行“软”重启。当用户重新打开应用程序时,操作系统将启动进程重新启动之前使用的最后一个活动。有没有一种方法可以告诉操作系统不要尝试恢复应用程序的最后状态,而只是从头开始?
发布于 2018-11-18 22:38:21
使用此https://github.com/JakeWharton/ProcessPhoenix库。你可以使用这个自定义你的重启。
在新流程中启动默认活动:
ProcessPhoenix.triggerRebirth(context);
或者,如果您希望启动时有特定的意图:
Intent nextIntent = //...
ProcessPhoenix.triggerRebirth(context, nextIntent);如果你想在后台和前台重启应用程序,在安卓Manifest.xml文件中对某些活动使用android:noHistory="true"
发布于 2018-11-20 05:09:18
问题仍然是,操作系统不会通知这样的事件-这使得除了手动处理之外别无选择。例如:检查未被授予Activity的onCreate()和onResume()的权限,然后执行相应操作,例如。清除后台堆栈,然后膨胀第一个片段。
唯一的罪魁祸首是分屏模式,在这种模式下,onResume()不会被触发,因为它从来没有引发过onPause()事件。我的意思是,一边是权限设置,另一边是应用程序。要处理此问题,必须偶尔检查权限的状态。
https://stackoverflow.com/questions/53361970
复制相似问题