Android - get SharedPreferences without Context

摘要:Android - get SharedPreferences without Context

因為偏號設定,設要SharedPreferences ,

他運用的方式,通常是使用者自訂,或一些cache資料。

不過稍微特別的是,取得SharedPreferences  需要使用


SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREF_NAME, Context.MODE_PRIVATE);

麻煩的事,有些共用元件,通常不會包住context進去,

這ctx,又是需要的,該怎麼辦。

很好,竟然還有解答

參考如下連結

http://stackoverflow.com/questions/2002288/static-way-to-get-context-on-android

需要建立Application

並在Application加入以下程式碼


public class MyApplication extends Application{

    private static Context context;

    public void onCreate(){
        super.onCreate();
        MyApplication.context = getApplicationContext();
    }

    public static Context getAppContext() {
        return MyApplication.context;
    }
}

在Android Manifest.xml加入


<application android:name="com.xyz.MyApplication">

</application>

這時改寫取得Share


SharedPreferences pref = MyApplication.getAppContext().getSharedPreferences(SHARE_PREF_NAME, Context.MODE_PRIVATE);

就可以了。