2011-05-03 45 views
0

我有我自己的singleton類繼承自應用程序。在我的所有活動中,我通過使用DataClass dc = (DataClass) context.getApplicationContext();獲得此共享課程。應用程序不同於活動broadcastreceiver

這似乎工作,但是當我在自定義的BroadCastReceiver中訪問單例時,我有一個應用程序的其他實例。

這可能嗎?有沒有人有這個解決方案?

回答

1

這是預期的行爲。

如果我沒有弄錯,BroadcastReceiver運行在不同的進程然後你的活動。這意味着您的BroadcastReceiver上將有不同的應用程序實例。

+0

那麼我應該如何將變量傳遞給broadCastReceiver?我可以使用intent.putExtra,但由於我需要傳遞一個很長的變量,這將是很大的開銷 – Vincent 2011-05-04 07:01:00

+0

putExtra()是最簡單的方法。另外請記住,您的BroadcastReceiver調用不應該花費更長的時間然後幾秒鐘執行,否則可能會被終止。實際上,你甚至無法綁定到接收器內的服務。我只是使用意圖,因爲我現在沒有更好的主意:P – Carl 2011-05-04 09:50:46

相關問題