【问题标题】:Getting string from SharedPreferences in AsyncTask, java.lang.NullPointerException从 AsyncTask 中的 SharedPreferences 获取字符串,java.lang.NullPointerException
【发布时间】:2018-04-04 19:07:12
【问题描述】:

我正在尝试在 AsyncTask 的 SharedPreferences 中保存一个字符串,但不幸的是我收到以下错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)'

以下是相关代码:

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);

    }
}

我做错了什么?

【问题讨论】:

    标签: java android-studio sharedpreferences


    【解决方案1】:

    也许你应该添加一个构造函数参数Context context

    【讨论】:

    • 非常感谢。这解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多