我是一名新的Android开发人员,我的第一个应用程序已接近完成。
我在要做的事情列表中的最后一件事是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"
。它现在按预期工作。