我已经浏览过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
来达到这个要求吗?