我正在观察 Intent.FLAG_ACTIVITY_CLEAR_TOP 的行为。
例如我有三项活动
A、B、C
现在流程是A -> B -> C
现在,当我使用以下代码从 C 开始使用此标志时。
Intent intent_to_a=new Intent(C.this,A.class);
intent_to_home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent_to_a);
AFAIK, Intent.FLAG_ACTIVITY_CLEAR_TOP 应该删除 B 并应该恢复 A 。它也做同样的事情,但以一种奇怪的方式。
它删除 B ,然后删除 A 然后创建 A 。
A 的 onDestroy 方法也被调用。
谁能告诉我这是否正确?
如果我不想让它被破坏我该怎么办?
使用 FLAG_ACTIVITY_REORDER_TO_FRONT,然后使用意图告诉 B 完成。
活动B:
private BroadcastReceiver finishReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
public void onCreate() {
LocalBroadcastManager.getInstance(this)
.registerReceiver(finishReceiver ,
new IntentFilter("B-finish"));
}
public void onDestroy() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(
finishReceiver );
}
活动C:
LocalBroadcastManager.getInstance(this).sendBroadcast(
new Intent("B-finish"));
Intent intent_to_a=new Intent(C.this,A.class);
intent_to_home.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent_to_a);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)