如何在Asynctask中获得共享偏好?

use*_*779 7 java android sharedpreferences android-asynctask

我正在为我的学校项目编写一个Android应用程序,但我被困在这里.问题是我必须访问一个SharedPreferences值并在AsyncTask类中需要它.当我尝试访问它时,由于上下文,它不会让我.我怎样才能达到我SharedPreferences的目标AsyncTask

public class CheckAccess extends AsyncTask<JSONObject, Integer, Boolean>{


    @Override
    protected Boolean doInBackground(JSONObject... params) {

        //Trying to get sharedpreferences here wont work.

        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

Gre*_*lin 10

覆盖onPreExecuteonPostExecute方法AsyncTask到达SharedPreferences那里:

@Override
protected void onPreExecute() {
    super.onPreExecute();
    //get sharedPreferences here
    SharedPreferences sharedPreferences = getSharedPreferences(<SharedPreferencesName>, <Mode>);
}
Run Code Online (Sandbox Code Playgroud)

请注意,这getSharedPreferences是一种Activity方法.所以,Context如果你没有使用它,你需要调用它Activity.

  • 我担心这个答案是对的.请参阅[tlahoda的答案摘要](http://stackoverflow.com/a/23598080/383414)或[我的答案以获得更详细的解释](http://stackoverflow.com/a/28084320/383414). (2认同)