在 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);
在 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);
试试这种方式,希望这能帮助你解决你的问题。
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);
试试这个代码
Intent intent = new Intent(this, Class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
使用本教程它将帮助你LINK