意图设置标志FLAG_ACTIVITY_CLEAR_TOP



在Android上,我开始了4个活动A,B,C,D,如果我想从D回到A,我可以使用'intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)'。但是,如果活动是按如下方式打开的相同类活动,我现在如何从 D 返回到 A?

Intent i = new Intent(FlagsTest.this, FlagsTest.class);
startActivity(i);

您可以像这样开始任何您想要的活动以将它们放在前面:要从 D 返回到 A,请执行以下操作:

Intent i = new Intent(context, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);

试试这段代码

Intent intent = new Intent(this, Class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

使用本教程它将帮助U

链接

尝试这种方式,希望这能帮助您解决问题。

1.在主活动或应用程序活动上编写此代码

private KillReceiver clearActivityStack;
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    clearActivityStack = new KillReceiver();
    registerReceiver(clearActivityStack, IntentFilter.create("clearStackActivity", "text/plain"));
   // register to clear stack
}
private final class KillReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        finish();
    }
}
@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(clearActivityStack); // unregister to clear stack
}

2.在启动活动之前编写此代码

 Intent intent = new Intent("clearStackActivity");
 intent.setType("text/plain");
 sendBroadcast(intent);

3.开始你的活动

Intent intent = new Intent(this, Class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

最新更新