我有一個BroadcastReceiver必須從應用程序類中獲取和修改某些數據。這些數據在一些活動中也被檢索和修改。從ReceiverRestrictedContext獲取應用程序就好像使用getApplication(而不是getApplicationContext)
我看到這篇文章:
getApplication() vs. getApplicationContext()
而且,因爲它說,getApplication並不總是返回相同的對象getApplicationContext。在我的情況下,如果我使用getApplicationContext在我的BroadcastReceiver中設置一個整數,然後在我的活動中檢查其值(使用getApplication),它始終爲0(默認值)。
我試過在兩個地方都使用getApplicationContext,但返回的對象是不一樣的。在使用getApplication獲取我的活動時,是否有任何方法可以在BroadcastReceiver中獲得相同的對象?我應該使用SharedPreferences嗎?
下面是一個例子:
廣播接收器:
MyApp app = (MyApp)context.getApplicationContext();
app.setNumPA(10);
活動:
MyApp app = (MyApp) getApplication();
Log.d("MyActivity", "Num PA: "+app.getNumPA());
在我的活動日誌總是顯示 「民PA:0」。