我按照以下顺序调用活动A> B> C> D,现在我想调用活动A并清除B和C但保留D.我用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
呼叫A。但除了A之外的所有活动都被清除了。任何机构都知道如何清除B和C并保持D> A。
答案 0 :(得分:2)
您可以在D:
中执行此操作,将A移至顶部(从D开始)Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
没有任何简单的标志可以用来摆脱B和C.我建议你有B和C注册一个BroadcastReceiver
来监听特定的ACTION。从D启动A后,您可以发送广播Intent
,这将导致B和C完成自己。例如,在B和C中执行此操作:
// Declare receiver as member variable
BroadcastReceiver exitReceiver = new BroadcastReceiver() {
@Override
void onReceive (Context context, Intent intent) {
// This Activity is no longer needed, finish it
finish();
}
}
onCreate()
中的注册接收者:
registerReceiver(exitReceiver, new IntentFilter(ACTION_EXIT));
不要忘记在onDestroy()
中取消注册接收器!
在D中,当您启动A时,发送包含ACTION_EXIT的广播Intent
以使B和C完成,如下所示:
sendBroadcast(new Intent(ACTION_EXIT));
答案 1 :(得分:-2)
在您的清单中为B类,C。
添加此项class Foo {
static int classGlobal = 6*7;
}