[英]Context needed for SharedPreferences
我在asynctask中使用SharedPreferences,但是由於這一原因,以下代碼行不起作用:
SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
但是,如果我刪除“ this”。 它引發了這個錯誤:
09-04 10:16:49.184: E/AndroidRuntime(1883): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:161)
另外,是否會使服務復雜化? 那么,如何為此SharedPreferences提供適當的上下文?
您可以在AsyncTask構造函數中設置一個參數,它將成為基本上下文,如下所示:
public class X extends AsyncTask {
private Context context;
public X(Context context) {
this.context = context;
}
@Override
doInBackground() {
SharedPreferences prefs = context.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
// your code
}
擁抱
在擴展Activity的類中全局聲明它
public static SharedPreferences prefs;
pref=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
現在,您可以根據需要使用pref
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.