从AsyncTask、java.lang.NullPointerException中的SharedReferences获取字符串
我试图在AsyncTask中获取保存在SharedReferences中的字符串,但不幸的是,我遇到以下错误: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“android.content.SharedReferences android.content.Context.GetSharedReferences(java.lang.String,int)” 以下是相关代码:从AsyncTask、java.lang.NullPointerException中的SharedReferences获取字符串,java,android-studio,sharedpreferences,Java,Android Studio,Sharedpreferences,我试图在AsyncTask中获取保存在SharedReferences中的字符串,但不幸的是,我遇到以下错误: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“android.content.SharedReferences android.content.Context.GetSharedReferences(java.lang.String,int)” 以下是相关代码: public class FetchData extends AsyncTas
public class FetchData extends AsyncTask<Void, Void, String> {
private Context context;
String deviceId;
private AsyncInterface asyncInterface;
public FetchData(AsyncInterface asyncInterface) {
this.context = context;
this.asyncInterface = asyncInterface;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
SharedPreferences sharedPreferences = context.getSharedPreferences("deviceId", MODE_PRIVATE); //Error here
deviceId = sharedPreferences.getString("deviceId", deviceId);
}
}
公共类FetchData扩展异步任务{
私人语境;
字符串设备ID;
专用异步接口;
公共获取数据(异步接口异步接口){
this.context=上下文;
this.asyncInterface=asyncInterface;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
SharedReferences SharedReferences=context.getSharedReferences(“deviceId”,MODE_PRIVATE);//此处出错
deviceId=SharedReferences.getString(“deviceId”,deviceId);
}
}
我做错了什么?也许你应该添加一个构造函数参数
上下文
非常感谢。这解决了我的问题!