我想在应用程序转到后台后始终启动启动器活动。我试过了android:clearTaskOnLaunch="true"
,但它不起作用。我怎样才能做到这一点?例如,我有 A,B,C,D,E,F 活动。 A 是启动器活动。
现在我打开应用程序,然后调用一个活动,然后 A> B> C 。现在我最小化应用程序。现在我从图标打开应用程序,所以应用程序从 C 开始,但我希望它从 A 开始,那么我该怎么做呢?一些人说使用onResume意图与 Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK 即可。但是,如果我按下后退按钮然后onResume被调用,我的应用程序以A活动开始......所以它不起作用..任何解决方案???
答案 0 :(得分:1)
您可以检查应用程序是在前台还是在后台,当应用程序进入后台状态时,同时做一些逻辑,当您的应用程序到达前台时,它将始终显示根活动。
如何识别应用程序的状态得到了很好的解释here
答案 1 :(得分:1)
启动活动B时,请使用这些标志。这样,活动B和C将始终位于单独的堆栈中。这意味着当有人从主屏幕启动活动A时,他们将始终看到活动A.
Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
Intent intent = new Intent(context, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent);
这也可能有所帮助,您可以将此标志添加到根Activity。
<activity
android:name=".ui.MainActivity"
android:clearTaskOnLaunch="true"/>
答案 2 :(得分:-1)
这是因为设备存储有关应用程序的数据。短时间内存储数据。如果你想从rot类启动应用程序。将应用程序与应用程序一起使用,以便每当您的应用程序进入后台并暂停时,选择您要执行的操作将更容易。