【发布时间】:2015-09-01 13:33:27
【问题描述】:
我有一个 Android 活动。我希望这个 Activity 是一个单例。我通过设置来做到这一点
android:launchMode="singleTop"
在我的AndroidManifest.xml。现在我需要一个对这个单一 Activity 的引用,而不是用 Intent 启动它。
我可以像这样创建一个实例:
MyActivity a = new MyActivity();
这会导致一个与我做的时候不同的实例:
Intent intent = new Intent(context, MyActivity.class);
startActivity(intent);
我如何获得与 Android 系统创建的相同的 Activity 实例?
【问题讨论】:
-
首先,“singleTop”不是一种将活动作为单例的方式。要将活动设为 Singleton,您应该使用“singleTask”或“singleInstance”,只有这两个提供活动的 Singleton 实例。
-
有什么区别?
-
@Akbar 该链接根本没有帮助。
-
“singleTask”或“singleInstance”活动的实例永远不会超过一个,因此前一个实例应该能够处理所有新的意图。
标签: java android android-intent android-studio