我的應用程序中的共享首選項有一種奇怪的情況。我正在使用Firebase郵件服務,並且我希望在收到郵件時在共享首選項中將布爾值設置爲true。當應用程序處於後臺時,SharedPreferences將在Firebase服務中進行編輯後更改值
這裏有一個簡單的代碼我又寫道:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
getApplicationContext().getSharedPreferences(ApplicationConstants.SHARED_PREFRENCES_KEY, MODE_PRIVATE).edit().putBoolean(getString(R.string.badge_settings_key), true).apply();
}
我在活動中的一個後訪問該布爾值。正如你所看到的,我在這個方法中爲布爾值設置了true。
奇怪的是,當我的應用程序在forground(其中一個活動是可見的),這完美的作品,每當我訪問這個值它仍然是真實的。但是當我的應用程序處於後臺並收到消息時,值仍然是錯誤的並且不會更改。服務將無法正確觸發,或者共享首選項文件無法正確保存。
我能做些什麼來解決這個問題?
如果用戶從未觸摸通知並直接啓動應用程序,該怎麼辦?我可以爲這個塞納里奧做些什麼? – roostaamir
然後就不需要通知了。 –
對於我的應用程序senario,有。我想向用戶顯示某事發生的通知,並在共享首選項中設置該布爾值 – roostaamir