kau*_*edi 7 android android-intent android-lifecycle android-activity
我正在观看Intent.FLAG_ACTIVITY_CLEAR_TOP的行为.
例如,我有三个活动A,B和C现在Flow是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);
Run Code Online (Sandbox Code Playgroud)
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 );
}
Run Code Online (Sandbox Code Playgroud)
活动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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14405 次 |
| 最近记录: |