【发布时间】:2018-02-27 16:30:43
【问题描述】:
【问题讨论】:
标签: android launchmode
【问题讨论】:
标签: android launchmode
不幸的是,如果清单中的 Activity B 设置为使用android:launchMode="singleTask",则(据我所知)无法覆盖它。
但是,当您想要singleTask 行为时,您可以从清单中删除此属性并使用类似这样的代码:
Intent intent = new Intent(this, ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
最终结果是当你想要它时你得到singleTask 行为,而当你不想要它时你得不到它。你只需要改变策略。
【讨论】:
在活动的onBack press方法中使用以下代码
@Override
public void onBackPressed() {
Intent BackpressedIntent = new Intent();
BackpressedIntent .setClass(getApplicationContext(),B.class);
BackpressedIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(BackpressedIntent );
finish();
}
【讨论】: