gpt4 book ai didi

android - 如何在 Android 中更新服务中的 Bundle 数据?

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:34 25 4
gpt4 key购买 nike

我要制作一个简单的闹钟,我有用户界面,我正在使用 Bundle 发送闹钟的用户配置(如音量值或音调类型)。在我的主要 Activity 中:

Bundle b = new Bundle();
b.putString("tone", toneS.getSelectedItem().toString());

然后我将它发送给 BroadcastReceiver:

Intent intent = new Intent(SetAlarm.this, MessageReceiver.class);
intent.putExtras(setBoundle());

然后我以这种方式在 BroadcastReceiver 中接收 Bundle:

Bundle b2 = new Bundle();
b2 = intent.getExtras();

它第一次运行完美,但之后虽然主要 Activity 中的 Bundle 有来自 UI 的新数据,但 BroadcastReceiver 只保留旧数据。

谁能解释一下这个问题?

最佳答案

我遇到了类似的问题,在网上进行了大量研究后,我了解到这个问题的解决方案隐藏在我们如何使用 PandingIntent 实例的过程中。首先,我像这样创建 PI 实例:-

 pendingIntent = PendingIntent.getService(SettingsScreen.this, 0, myIntent, 0);

但是如果你想更新 PendingIntent 的实例和 Bundle 数据,你必须将 PendingIntent.FLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT 作为最后一个参数。所以 PendingIndent 实例将是:-

 pendingIntent = PendingIntent.getService(SettingsScreen.this, 0, myIntent, 
PendingIntent.FLAG_CANCEL_CURRENT);

pendingIntent = PendingIntent.getService(SettingsScreen.this, 0, myIntent, 
PendingIntent.FLAG_UPDATE_CURRENT);

这解决了我的问题,我希望它也能解决你的问题。

关于android - 如何在 Android 中更新服务中的 Bundle 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955094/

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