【发布时间】:2013-07-15 00:07:39
【问题描述】:
我是一名新的 Android 开发人员,我的第一个应用程序即将完成。
我要做的最后一件事是 Tasker 集成。我的集成工作达到了一定程度。
我的应用程序当前设置为作为插件工作并接受来自 tasker 的字符串并使用新字符串更新首选项。这是有效的。
问题是当我重新启动我的应用程序时,首选项的值没有更新。在完全关闭应用并重新启动之前,我无法更新偏好摘要。
所以问题是,我如何强制我的应用从应用的 onResume 中重新加载首选项,还是有更好的方法?
这是接收者更新偏好值的代码:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String album_name = bundle.getString(PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE);
prefs.edit().putString("text_default_album", StringUtil.sanitize(album_name)).commit();
Log.d(TAG, "fr: "+prefs.getString("text_default_album", ""));
这是 Activity 的 onResume 中的:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String album_name = prefs.getString("text_default_album", "");
Log.d(TAG, "album_name: "+album_name);
final Preference album = getPreferenceScreen().findPreference("text_default_album");
album.setSummary(album_name);
接收者的清单声明:
<receiver
android:name=".receivers.FireReceiver"
android:exported="true"
android:process=":background"
tools:ignore="ExportedReceiver" >
<!-- this Intent filter allows the plug-in to discovered by Locale -->
<intent-filter>
<action android:name="com.twofortyfouram.locale.intent.action.FIRE_SETTING" />
</intent-filter>
</receiver>
更新:一旦我删除了接收者的 AndroidManifest.xml 声明中的android:process=":background",可能会遇到这个问题并难以弄清楚的人。它现在按预期工作。
【问题讨论】:
-
对于任何正在寻找如何在一个偏好发生变化时更新一个偏好的人,另请参阅stackoverflow.com/questions/7603633/…。
标签: android sharedpreferences preferences