【发布时间】:2014-05-11 19:21:42
【问题描述】:
我正在为我的学校项目编写一个 android 应用程序,但我被困在这里。问题是我必须访问 SharedPreferences 值并在 AsyncTask 类中需要它。当我尝试访问它时,由于上下文,它不会让我访问。如何在我的AsyncTask 中联系我的SharedPreferences?
public class CheckAccess extends AsyncTask<JSONObject, Integer, Boolean>{
@Override
protected Boolean doInBackground(JSONObject... params) {
//Trying to get sharedpreferences here wont work.
return null;
}
}
【问题讨论】:
-
我的意思是访问其中的值。
-
我认为您不能从
AsynTask访问sharedPreference,至少在doInBackGround中是这样。您是否尝试过从onPreExecute访问它? -
只需将您需要的值传递给 AsyncTask,可能在构造函数中。您甚至可以传入上下文,但我不会在
doInBackground()中访问它,因为它可能不安全。 -
我试过了:SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);但它给了我错误:PreferenceManager 类型中的方法 getDefaultSharedPreferences(Context) 不适用于参数 (CheckAccess)
标签: java android android-asynctask sharedpreferences