如何忽略" SingleTask"的launcheMode什么时候开始活动?

时间:2017-09-19 03:02:06

标签: android launchmode

enter image description here

有三种活动,其中B的发布模式是" SingleTask"。我想知道如何启动新的B而不是在使用C时重新启动旧的B?

2 个答案:

答案 0 :(得分:0)

不幸的是,如果在清单中设置活动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行为,而在您不需要时则无法获得此行为。你只需要改变策略。

答案 1 :(得分:0)

在onBack按活动方法

中使用以下代码
    @Override
    public void onBackPressed() {
    Intent BackpressedIntent = new Intent();
    BackpressedIntent .setClass(getApplicationContext(),B.class);
    BackpressedIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(BackpressedIntent );
    finish();
}