-1

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

3 回答 3

3

你可以像这样开始任何你想要的活动来把他们带到前面:要从 D 回到 A 做这样的事情:

Intent i = new Intent(context, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
于 2013-09-05T10:37:56.577 回答
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.在启动A Activity之前编写此代码

 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);
于 2013-09-05T11:01:17.630 回答
1

试试这个代码

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

使用本教程它将帮助你LINK

于 2013-09-05T10:37:29.357 回答