所以我有需要通知,該公司已經接到了一條短信服務的廣播接收機偏好。做到這一點的唯一方法(據我所知)是一種靜態方法。但是被通知的方法需要訪問應用程序的首選項。如何訪問一個靜態方法
每次我都試過法說,它不能從一個靜態方法來訪問。那麼如何從靜態方法訪問首選項?
所以我有需要通知,該公司已經接到了一條短信服務的廣播接收機偏好。做到這一點的唯一方法(據我所知)是一種靜態方法。但是被通知的方法需要訪問應用程序的首選項。如何訪問一個靜態方法
每次我都試過法說,它不能從一個靜態方法來訪問。那麼如何從靜態方法訪問首選項?
工作的一些代碼樣本做到這一點的唯一方法(據我所知)是一種靜態方法。
幾乎沒有。實際上,不建議這種方法。
如果服務在收到廣播時應該在內存中,請讓服務通過registerReceiver()
註冊BroadcastReceiver
並直接處理。如果服務不應該是在內存中接收的廣播時,使用startService()
啓動該服務,併發送了一個Intent
(在服務的onStart()
回升)。
那麼,如何訪問喜好從一個靜態方法?
見Pentium10的答案。
非常感謝,所以當我註冊接收器時,我怎麼知道什麼時候收到了什麼? – 2010-08-21 07:17:17
其實,我都有種返工我在做什麼,我現在有接收器設置爲啓動該服務,並送過來的意圖,但我可以有多個短信進來,所以我怎麼能發過去一個又一個曾經服務已經開始? (我仍然對第一個問題的答案感到好奇) – 2010-08-21 07:21:38
@Andrew Guenther:「當我註冊接收器時,我怎麼知道什麼時候收到了什麼?」 - 因爲接收器是用'onReceive()'調用的。使其成爲服務的內部類,並且可以調用服務上的方法。 「一旦服務已經開始,我怎樣才能發送另一個?」 - 再次調用'startService()'。理想情況下,你的服務是一個'IntentService',它在後臺線程上處理Intents,如果需要則將'Intents'排隊,並在沒有更多工作要做時自動關閉。 – CommonsWare 2010-08-21 07:56:26
可以使用context
PARAM你BroadcastReceiver
的以訪問的東西,屬於Context
,如getSharedPreferences
要查看與SharedPreferences
看到這個其他問題Making data persistent in android
您可以分享服務中的代碼樣本嗎? – st0le 2010-08-21 06:20:49