我有一个包含多项活动的应用程序。 Own Application类用于存储全局数据,因此任何活动都可以检索它。 问题是,当我努力通过活动(特别是通过创建大量位图图像的活动)时,系统会创建具有错误全局数据的Application类的新实例。
问题是:为什么会这样? )
我相信对这种行为有一些简单的解释。
答案 0 :(得分:2)
您应该在androidManifest.xml中的android:launchMode
标记内指定activity
属性以满足您的需求,例如:
<activity android:launchMode="singleTask" [...]>
[...]
</activity>
您可以阅读更多相关信息: android:launchMode=["multiple" | "singleTop" | "singleTask" | "singleInstance"]
“singleTask”和“singleInstance” 活动只能开始一项任务。他们 永远是活动的根源 堆。而且,该设备可以容纳 只有一个活动的实例在 时间 - 只有一个这样的任务。
"singleTask"
和"singleInstance"
模式仅相互不同 一个方面:一个“singleTask”活动 允许其他活动成为其中一部分 它的任务。它永远是根源 它的任务,但其他活动 (必然是“标准”和"singleTop"
活动)可以 发起了这项任务。一个"singleInstance"
活动,关于 另一方面,不允许其他 活动成为其任务的一部分。 这是任务中唯一的活动。如果 它开始了另一项活动 活动被分配给不同的 任务 - 就好像FLAG_ACTIVITY_NEW_TASK
是故意的。
通过这种方式,您可以确保只有一个活动实例正在运行。