gpt4 book ai didi

Android更改首选项值并更新首选项屏幕中的显示

转载 作者:太空狗 更新时间:2023-10-29 15:10:03 24 4
gpt4 key购买 nike

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

接收方的 list 声明:

    <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 中的 android:process=":background"接收器的 .xml 声明。它现在按预期工作。

最佳答案

提交将新值保存在存储中,但不会更新内存中的值。如果你想要这个功能,你应该使用 apply。阅读更多 herehere

所以你必须更换

prefs.edit().putString("text_default_album", StringUtil.sanitize(album_name)).commit();

prefs.edit().putString("text_default_album", StringUtil.sanitize(album_name)).apply();

希望这有助于...

关于Android更改首选项值并更新首选项屏幕中的显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17645024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com