所以我有活动A,B,C App流程为A-> B-> C
A,B与登录功能相关联,只启动一次即可登录。 整个应用程序在C活动中。当用户使用C时,A,B是活着的。一切正常。
现在..
我杀了app的PID。然后从任务管理器中选择它。
A未启动,B未启动,C-> onCreate(非空)触发。
我可以通过检查是否存在A或B的实例来检测这种情况。 所以现在我知道这个特定情况已经发生我想重新启动应用程序 - >活动A,所以它是一个新的发布。
问题是在onCraete(非空)
内重新启动应用程序 活动C中的onCreate(非null)中的我这样做:
if (A==null or B==null)
finish;
return;
然后在活动B中相同。这有效,C和B完成,A弹出... 但在此期间......
碎片onCreate&&调用C onDestroy之前的onCreateView fire。因为我在活动C中有很多片段,这会造成应用程序崩溃。
所以,我的问题是。有没有办法在活动C onCreate(非空)(或甚至在C onCreate之外;在清单?中)强制应用程序重启,以便片段onCreate&不调用onCreateView吗?
P.S:我在清单中尝试过clearTaskonLaunch,但即使我暂停/恢复屏幕,也会强制重启应用程序。
任何建议都会有所帮助
答案 0 :(得分:0)
我有一个非常相似的情景。似乎向基类location.protocol
发送null
值可防止碎片重新加载。这是我的基本Activity类的代码片段(它在C#Xamarin.Android中,但很容易理解):
OnCreate