2013-03-08 90 views
1

當我想訪問我的SharedPreferences內部doInBackground時遇到問題。我怎樣才能做到這一點?如何訪問doInBackground AsyncTask中的SharedPreferences?

真的非常感謝!

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 2013-03-08 22:12:17

+0

非常感謝你,它的工作原理! :D我不知道爲什麼我會這樣做,我無法做到這一點,我會發布我的最終代碼。 – 2013-03-08 22:20:24

回答

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 2013-11-22 12:12:36

+5

這個答案不正確,getApplicationContext()在這裏不起作用。 – Loolooii 2014-02-26 14:47:31

+0

檢查鏈接,這是工作對我來說http://stackoverflow.com/questions/15855332/update-shared-preferences-from-asynctask-onpostexecute – KZoNE 2015-07-07 11:19:00

相關問題