2012-08-16 56 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