当我的应用程序进入后台并且我收到广播时,我的应用程序处于不一致状态,并且我想确保下次我的应用程序到达前台时,我启动Launcher(或root)活动。 为此,我有以下方法,
我的所有活动都来自基地。在基地恢复检查应用程序状态时。如果状态不一致,则启动Root活动。问题:应用程序恢复应该很快,检查状态是数据库调用。还有一个可见的翻转到Root活动,我想避免。
抓住广播接收器中的前台活动,清除任务并启动主要活动。 问题:我必须保持对所谓here所述的热门活动的引用。
最好的方法是什么?
答案 0 :(得分:2)
您可以在AndroidManifest.xml中设置android:noHistory="true"
。
如果用户离开您的应用程序(它移动到后台),活动就会完成,因此您的应用程序将重新启动。
<小时/> 要仅在事件发生时启动root活动,请使用以下代码:
Intent intent = new Intent(context, yourRootActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
这可确保完成所有旧活动,并且新启动的活动将成为新任务的“根活动”。 Source
答案 1 :(得分:0)
在您的主Activity中,您可以检查onCreate()中的状态,并继续启动您的主Activity,或者,如果您的状态命令如此,请立即调用您的主活动上的finish()并启动应启动的任何适当的活动。 / p>