我有活动A和活动B.A是根活动,它启动活动B.
这两个活动都实例化一个单例类C.我希望它们有自己独特的类C,但活动B总是以活动A中的C结束。
<activity
android:name="com.scrollMotion.bundleRunner.A"
android:label="@string/title_activity_bundle" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.scrollMotion.B"
android:label="ShelfBundleActivity"
android:allowTaskReparenting="true"
android:taskAffinity="com.scrollMotion.ShelfBundleActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我以下列方式从A开始活动B:
Intent intent = new Intent(this.context, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
我试图将这两个活动保存在单独的内存和堆栈中。
提前感谢您的帮助。
杰里
答案 0 :(得分:1)
不要让C类成为单身人士。这实际上就是单身人士的意思,他们是可怕的事情,这正是他们不应该被任何人雇用的原因。
答案 1 :(得分:0)
嗯,我根本不是专家,但也有一种名为multiton的模式。您可以将该单例类更改为multiton,并选择正在查找的正确实例,将活动引用(或所有活动共享的任何内容)传递给实例函数。此外,如果全局可用,您可以在实例函数中检查并返回相应的实例而不更改API。
答案 2 :(得分:0)
使用Singlton并不是最好的编程习惯,但有时当您使用遗留代码时,您别无选择。
无论如何,我没想到我的静态单例类可以在android任务之外访问。但它确实如此。
在我的应用程序中,新的应用程序(相同类型)可以在几个级别深度生成应用程序堆栈。我需要一个干净的单身人士为每个应用程序。当应用程序弹出应用程序堆栈时,单例将被上一个应用程序中的数据损坏。
我最终做的是创建静态HashMap的哈希映射
感谢您的所有建议。