在我的 Activity A 中,我使用 Intent 调用 Activity B。在 Activity B 中,我重写了 onBackPressed() 并从中调用 Activity A,但不使用 finish()。那么当我们调用 Activity B 时再次从 A 开始,是使用 Activity B 的相同实例还是创建新实例? 并且在没有完成 Activity 的情况下再次调用 n 是个坏主意吗?如果是,如何防止每次都创建 Activity B 的新实例?在这种情况下, list 中的 android:launchMode="singleTask"是否有帮助?
最佳答案
您可以在调用 Activity 之前在 Intent 中设置 FLAG_ACTIVITY_REORDER_TO_FRONT 标志。如果启动的 Activity 已经在运行,此标志将导致它被带到其任务历史堆栈的前面,因此不会创建该 Activity 的新实例。例如
Intent settingIntent = new Intent(ActivityA.this, ActivityB.class);
settingIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
ActivityA.this.startActivity(settingIntent);
关于android - 当我们在android中没有结束的情况下再次使用intent再次调用activity时,创建了多少个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12381477/