intent setFlags FLAG_ACTIVITY_CLEAR_TOP

时间:2013-09-05 10:33:27

标签: android android-intent

在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);

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

尝试此代码

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

使用本教程它将帮助U LINK

答案 2 :(得分:1)

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

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);