【发布时间】:2014-09-10 14:38:36
【问题描述】:
我有一个Service,它有自己的进程:
<service
android:name=".services.Commander"
android:label="@string/commander"
android:process=":commander_process" >
</service>
在此服务中,使用executeOnExecutor 执行AsyncTask。在其onPostExecute 方法中,我想使用以下代码写入数据:
SharedPreferences prefs = getSharedPreferences("MY_APP_KEY", Context.MODE_PRIVATE);
prefs.edit().putString(Constants.PREF_KEY_APP_PASSWORD, MD5.get(password)).apply();
但是,此代码无效,并且首选项不会更新。我还尝试了commit() 而不是apply(),但它也不起作用。然后我尝试了MODE_MULTI_PROCESS 而不是MODE_PRIVATE:
SharedPreferences prefs = getSharedPreferences("MY_APP_KEY", Context.MODE_MULTI_PROCESS);
没用。
我的代码适用于 Android 2.3.6,但不适用于 Android 4.2.2。我该如何解决?
【问题讨论】:
-
SharedPreferences 首选项= PreferenceManager.getDefaultSharedPreferences(MyService.this);这对你有用吗?
-
@IllegalArgument 让我检查一下
-
@IllegalArgument 没用。
标签: android service android-asynctask sharedpreferences