android - 当我们在android中没有结束的情况下再次使用intent再次调用activity时,创建了多少个实例?

标签 android android-activity

在我的 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/

相关文章:

android - 为什么我的通知小图标总是灰显?

android - 为什么 Eclipse 突出显示 R.id.tabhost?

Android Google Maps API v2 显示路线

java - 检测 Android 设备震动事件的良好架构?

java - 不属于您的应用程序的动画 Activity

java - 在 Java 中如何通过 int 引用字符串?

java - 在 Android Studio 中使用线程崩溃 Java apk

javascript - 如何在 Android Webview 中停止 Javascript 执行

java - Android Activity 正在重新启动

android - 如何从服务内部检测/监听 Android 应用程序/Activity 的运行变化?