我是一名新的Android开发人员,我的第一个应用几乎完成。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", ""));
这是在活动的的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"
。它现在按预期工作。
为了任何人谁是寻找如何更新一个当另一个偏好更改,也请参阅http://stackoverflow.com/questions/7603633/updating-preferences-in-real-time。 – ToolmakerSteve