我喜歡在從BroadcastReceiver擴展的類中使用SharedPreferences。但是這種方法getSharedPreferences(prefName, MODE_PRIVATE);
不被識別。如何在BroadcastReceiver
類中檢索SharedPreferences
? 謝謝從BroadcastReceiver擴展的類中無法識別getSharedPreferences()
0
A
回答
0
您需要一個Context
來檢索SharedPreferences
。 onReceive
爲您提供了上下文
0
getSharedPreferences
是Context
的方法,你activity
延伸Context
這就是爲什麼你可以使用它作爲是。
如果你想在別的地方使用它,你需要一個上下文。最簡單的方法是在這個答案提供
Static way to get 'Context' on Android?
第1步:您在AndroidManifest.xml
第2步添加一個類:創建類這樣
public class App extends Application{
private static Context _context;
@Override
public void onCreate() {
super.onCreate();
_context = this;
}
public static Context getContext(){
return _context;
}
}
步驟3:無論何時您需要與上下文相關的內容,您都可以:App.getContext()
你的情況App.getContext().getSharedPreferences()
相關問題
- 1. 擴展方法無法識別
- 2. VS2012的JSLint擴展無法識別JSON
- 3. Chrome擴展 - JS功能無法識別
- 4. 類擴展 - 無法識別的二傳手
- 5. Ruby on Rails:爲什麼我的類擴展無法識別?
- 6. 類擴展BroadcastReceiver不工作
- 7. class在libGDX中擴展了inputAdapter,但碰到無法識別的
- 8. Xades4j - CRL中無法識別的關鍵擴展(s)
- 9. 未識別的擴展方法
- 10. 在BroadcastReceiver擴展類中使用getContentResolver
- 11. 無法在sendBroadcast實例化嵌套類(擴展broadcastReceiver)
- 12. 類擴展BroadcastReceiver無法顯示用戶界面
- 13. 類別無法識別Ivars
- 14. 以擴展BroadcastReceiver的類爲例
- 15. 在命令行腳本中無法識別MongoDB PHP擴展
- 16. Kotlin擴展屬性無法在字符串模板中識別
- 17. 識別無二進制數據擴展名的文件類型
- 18. 查看模型無法識別擴展方法?
- 19. 無法識別的類型
- 20. Git bash擴展在不同的硬盤上無法識別npm
- 21. 「對準」:無法識別的擴展屬性
- 22. Rake無法識別具有多個擴展名的規則
- 23. Symfony 1.4/Doctrine 1.2無法識別加載的APC擴展
- 24. Android無法識別帶.WMV擴展名的文件?
- 25. 經由方法類擴展類類別
- 26. 這個類擴展了Activity和BroadcastReceiver
- 27. 斯威夫特類擴展 - 無法識別的選擇發送到實例
- 28. 圖片上傳,無法識別文件擴展名
- 29. Eclipse CDT編輯器無法識別OpenGL擴展
- 30. webpack無法識別.jsx文件擴展名
是的,如果在onReceive方法中,我可以使用onReceive方法的上下文。但它是另一種方法。 – Bryanyan 2013-05-08 15:19:30
你可以隨時保持參考。例如,你可以存儲一個類變量。或者您可以更好地將SharedPreferences存儲在類變量中 – Blackbelt 2013-05-08 15:20:14