我有两个活动在我的应用程序中有android:launchMode="singleTop"
。它按预期工作。android launchMode =“singleTop”in two activities
我的singleTop
的目的是部分更新它们,而不必重新创建整个活动。样例执行是这样的。
A→B
当从B回压时,A中的显示被更新。
A - >乙 - “ç
选自C backpressed时,在乙显示被更新。
但是,当我在显示屏上触发一个方向改变而活动B位于最上方时(从后面的C开始),B被神秘地销毁并且A被显示。这是为什么发生? Android允许多个活动具有singleTop
行为吗?如果方向改变发生,我是否应该将其他标志从C传递给B以防止B关闭?
代码以上特征:
ActivityA
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
if(intent.hasExtra(UPDATE_ARG)) {
...
}
}
ActvitiyB
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(this, ActivityA.class);
intent.putExtra(ActivityA.UPDATE_ARG, true);
startActivity(intent);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
if(intent.hasExtra(UPDATE_ARG)) {
...
}
}
ActivityC
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra(ActivityB.UPDATE_ARG, true);
startActivity(intent);
}
而在清单文件中,ActivityA和ActivityB都有android:launchMode="singleTop"
属性定义。