2013-03-08 2 views
1

У меня проблема, когда я хочу получить доступ к моим SharedPreferences внутри doInBackground. Как я могу это сделать?Как я могу получить доступ к SharedPreferences внутри doInBackground AsyncTask?

Действительно спасибо!

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

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

    } 
} 
+1

Вы можете получить доступ к SharedPreferences в фоновом потоке (так же, как и в основном потоке), поскольку они сохраняются настойчиво. – Edison

+0

Спасибо вам большое, это работает! : D Я не знаю, почему я решил, что я не могу этого сделать, я отправлю свой последний код. –

ответ

2

Решение было проще, чем я думал.

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", ""); 
    } 
} 
+4

IDK, почему эта работа будет работать, getApplicationContext() - это метод класса Context, а AsyncTask не расширяет его. – viplezer

+5

Этот ответ неверен, getApplicationContext() здесь не работает. – Loolooii

+0

Проверьте ссылку, Это работа для меня http://stackoverflow.com/questions/15855332/update-shared-preferences-from-asynctask-onpostexecute – KZoNE

Смежные вопросы