但是如果在這裡有需要取得原本 app 的 SharedPreferences 該怎麼辦...
BroadcastReceiver 並不是 app 的 Activity 阿
還好可以使用這個方法
Context pkgContext = null; try { pkgContext = context.createPackageContext("要被讀取的 package 名稱", Context.MODE_WORLD_READABLE); } catch (NameNotFoundException e) { e.printStackTrace(); } SharedPreferences pref = pkgContext.getSharedPreferences("你的 SharedPreferences 檔案名稱", Context.CONTEXT_IGNORE_SECURITY);
利用 Context 的 createPackageContext 方法
先取得一個原本 app 的 application Context 物件
(這樣一來就可以使用原本 app 的 Resources 或是 ClassLoader 之類的)
再透過這個 context 去 getSharedPreferences 就可以了
沒有留言:
張貼留言