Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何访问doInBackground异步任务中的SharedReferences?_Android_Android Asynctask - Fatal编程技术网

Android 如何访问doInBackground异步任务中的SharedReferences?

Android 如何访问doInBackground异步任务中的SharedReferences?,android,android-asynctask,Android,Android Asynctask,当我想访问共享参考资料doInBackground中的时,我遇到了一个问题。我该怎么做 真的谢谢 private class postData extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { // I need to access here to my SharedPreferences // } }

当我想访问共享参考资料
doInBackground
中的时,我遇到了一个问题。我该怎么做

真的谢谢

private class postData extends AsyncTask<String, Void, String> {
  @Override
  protected String doInBackground(String... params) {

    // I need to access here to my SharedPreferences //

  }
}
private类postData扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
//我需要在这里访问我的共享参考资料//
}
}

解决方案比我想象的要简单

private class postData extends AsyncTask<String, Void, String> {
  @Override
  protected String doInBackground(String... params) {
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext() );    
    String userName = sharedPrefs.getString("auth_username", "");
    String userPass = sharedPrefs.getString("auth_password", "");
  }
}
private类postData扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
SharedReferences SharedRefers=PreferenceManager.GetDefaultSharedReferences(getApplicationContext());
String userName=sharedPrefs.getString(“auth_userName”,”);
字符串userPass=sharedPrefs.getString(“验证密码”);
}
}

您可以在后台线程中访问SharedReference(与在主线程上的方式相同),因为它们是持久存储的。非常感谢,它很有效!:D我不知道为什么我认为我做不到这一点,我将发布我的最终代码。IDK为什么会这样做,getApplicationContext()是上下文类的一个方法,AsyncTask没有扩展它。答案不正确,getApplicationContext()在这里不起作用。检查链接,这对我来说是有效的上下文位错误,但你可以从中提取一些有用的信息