所以我有A、B、C三个活动。 应用程序流程是A->B->C。
A、B与登录功能相连,只有在登录时启动一次。 整个应用程序位于C活动中。当用户使用C时,A、B仍然存在。一切都运行得很好。
现在...
我杀掉了应用程序的PID。然后从任务管理器中选择它。
A没有启动,B也没有启动,C->onCreate(不为空)触发。
我可以通过检查A或B是否存在来检测这种情况。 既然我意识到发生了这种特定的情况,我想重新启动应用程序->到A活动,这样就可以进行全新的启动。
问题是在onCreate(不为空)中重新启动应用程序。
在C活动的onCreate(不为空)中,我会这样做:
if (A==null or B==null)
finish;
return;
然后在活动B中执行相同的操作。这样做是有效的,C和B都已完成,A弹出。
然而,在此期间...
由于活动C中有许多片段,因此片段的onCreate和onCreateView在调用C onDestroy之前就会启动。这会导致应用程序崩溃。
所以,我的问题是:在活动C onCreate(不为空)中是否有一种方法可以强制应用程序重新启动(甚至在C onCreate之外;在清单中?),以便片段的onCreate和onCreateView不会被调用?
P.S:我尝试在清单中使用clearTaskOnLaunch,但即使我仅暂停/恢复屏幕,它也会强制应用程序重新启动。
任何建议都将很有帮助。