Joe*_*ser 8 android global-variables broadcastreceiver
我想从广播接收者(在清单中注册)和例如多个活动中访问我的MyApp(扩展应用程序)中的"全局"变量.现在我似乎有MyApp的不同实例:一个用于BCR,一个用于活动.某事可以帮我解决问题吗?非常感谢Joerg
我从中得到的是,您正在尝试创建一种方法来拥有单个 Context 对象。首先,要执行此操作,您需要 MyApp 的单例模式来创建“全局”变量。但出于以下原因,我建议不要这样做:
我怀疑您这样做的原因是您的 MyApp 类可以启动不同的活动。这是有道理的,但是......您几乎可以从任何地方获取上下文对象。Android 中的许多东西都扩展了 ContextWrapper 类(想想具有 Object 类的 Java 对象)。所以确实没有理由有一个“全球”实例。事实上,您的 BroadcastReceiver 的 onReceive() 方法接受上下文参数。您可以用它来开始活动等等。
如果这不是您想要 MyApp 单例类的原因 - 并且有合理的理由需要它,我会看看Bill Pugh 设计的实现,因为考虑到线程同步和锁定,它是 Java 中最安全的。
希望这可以帮助。请记住,不要对抗 SDK,让它为您服务!