Android 无法从包中获取 bool 值

标签 android google-cloud-messaging android-bundle gcmlistenerservice

在我的 GcmListenerService 中,我得到了这个包数据:

Bundle[{gcm.notification.e=1, gcm.notification.title=SomeApp, proceed=true, gcm.notification.body=Some text, message=Some message, collapse_key=example.com.SomeApp}]

我可以通过

获得消息
bundle.getString("message");

但我无法在 bundle 数据中获取proceed bool 值。 我用过:

bundle.getBoolean("proceed",false);

这总是给出 false,即使 bundle 数据中的值为 true。 它是如此简单,我不知道我错过了什么。 谢谢。

最佳答案

尽管 proceed 的值看起来是一个 boolean,但它很可能作为 String 存储在 Bundle 中code>,这就是为什么您无法使用 bundle.getBoolean() 获取它的值的原因。

您应该改用 bundle.getString("proceed");

如果需要,您可以将 String 解析为 boolean

boolean proceed = Boolean.parseBoolean(bundle.getString("proceed", "false"));

关于Android 无法从包中获取 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36721514/

相关文章:

android - 而不是预览,Android Studio 只显示黑屏,上面写着 'android...ActionBarOverlayLayout'

android - GCM 推送通知导致 502 Bad Gateway

android - Android 客户端无法识别来自服务器的 JSON gcm 消息

android - Build Bundle后,release文件夹下没有aab文件

android - Android 6.0.0 上的 ti.map 权限

android - android 6.0重复闹钟的方法

java - SQLite 中的 android errno

android - GCM collapse_key 不工作

Android 以 bundle 方式传递持久信息还是使用单例模式?

android - 尝试序列化包含 android 包的对象时出现 java.io.NotSerializedException : android. os.Bundle