1

布爾值在我GcmListenerService我得到這個捆數據:的Android無法擺脫捆綁

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"); 

但我不能得到繼續布爾值int包數據。 我用:

bundle.getBoolean("proceed",false); 

這總是給假,即使值是捆數據真實。 這很簡單,我不知道我錯過了什麼。 謝謝。

+1

您是否嘗試過使用'bundle.getString(「proceed」);'來查看它是否存儲爲'String'? –

+0

不,我用getBoolean,因爲它有一個默認值。我覺得我將不得不與getString檢查並檢查空值。感謝您的建議。 – ArJ

+0

它被意外發送。 – ArJ

回答

2

即使的proceed值看起來是一個boolean它可能保存在BundleString,這就是爲什麼你不能讓它使用bundle.getBoolean()的價值。

您應該改用bundle.getString("proceed");

如果需要,您可以將String解析爲boolean

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

謝謝,它正在工作。但我通過php發送它作爲一個布爾到gcm服務器。所以我認爲它會保持布爾值。 – ArJ

+2

我可以看到那裏的困惑。我試着在文檔中找到某處,不管它是否表示所有的值都是作爲字符串發送的,但沒有發現太多。 'onMessageReceived'表示'Bundle'是'作爲字符串鍵/值對的消息數據'。不知道這是否意味着鍵和值都是「字符串」。 –