如何使用FLAG和Activity Affinity

时间:2018-02-21 04:48:02

标签: android android-intent back-stack

我已经浏览过FLAGS和Affinity(Link)上的android文档 并尝试了我认为有助于实现我的要求的不同组合,但似乎我错过了一些东西。

我需要从activityA发起BroadcastReceiver,然后完成activityA并启动activityB。所以当用户按下它时,它不会回到activityA;当presses back上的用户activityB停止activityB时,它将转到back stack但是当用户从task manager打开应用时,它将从activityA

注意:当后台有另一个应用程序活动时,这不会发生。(仅当应用程序完全强制关闭/终止时才会发生)。 当用户在home button中按activityB时,它也会按预期运行。

我使用以下代码从activityA午餐BroadcastReceiver

Intent intent = new Intent(context, ActivityA.class);
intent.putExtra(EXTRA_TAG, new Gson().toJson(remoteMessage));
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

我使用以下代码从activityB午餐ActivityA

Intent intent = new Intent(this, ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);
finish();

我需要使用不同的FLAG来达到这个要求吗?

0 个答案:

没有答案