簡體   English   中英

SharedPreferences需要的上下文

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM