2012-08-16 53 views
7

我想用app = (MyApplication)getApplication();BroadcastReceivergetApplication在广播接收器在安卓

我使用THI链接: http://www.devahead.com/blog/tag/application/

getApplication不退出在广播接收器,我该如何使用呢?

我需要它becouse我想这两者之间共享数据广播接收器

+0

我不认为这是可能的,因为afaik'BroadcastReceiver'没有上下文。当你有一个'Context'时,你只能'getApplication()'。也许试着写出你想要达到的目标,找到另一个解决方案更容易 – 2012-08-16 20:21:57

+0

谢谢。但是我试图将一个接收器的属性数据传送给另一个接收器。我希望接收器1中的一些代码不会执行,如果rceiver 2没有做一些... – senzacionale 2012-08-17 07:41:25

回答

3

BroadcastReceiveronReceive(Context ctx, Intent intent)方法被称为接收消息......你是手递的上下文。

+0

谢谢。我正在阅读这个http://stackoverflow.com/questions/5018545/getapplication-vs-getapplicationcontext,它说,我没有必要得到应用程序实例。 所以我想要做什么。我正在尝试将一个接收器的属性数据传送给另一个接收器。我希望接收器1中的一些代码不会执行,如果rceiver 2没有做某些事情......这是正确的方式与应用程序? – senzacionale 2012-08-17 07:46:54

+1

您可能不会直接收到应用程序上下文,但您不必关心,因为您可以调用'ctx.getApplicationContext()'来获取一个。至于你想要完成什么的具体细节,有很多方法可以解决这个问题,而“正确的”取决于超出你的问题范围的因素,或者甚至是一个适合于计算器的问题。尽管有一些可能性,包括简单的SharedProperty值,Singleton类方法,设置/获取属性的本地服务以及多个广播接收器;没有一个正确的答案。 – mah 2012-08-17 11:31:50

+2

但'getApplicationContext()'不是'getApplication()'。 '(Application)getApplicationContext()'会不会失败? – Timmmm 2012-11-03 13:24:35