我是一名新的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