2012-05-09 63 views
2

當我使用android c2dm將通知推送到我的設備時,出現了一個奇怪的問題。Android 4.0 c2dm問題

如果我正在使用「管理應用程序 - >我的應用程序 - >強制停止」關閉應用程序,並嘗試將推送發送到我的設備,則無法使用。

它適用於Android版本低於4.0的所有其他設備。

任何想法?

感謝

編輯: 好吧,我已經研究多一點,似乎當一個應用程序被殺害,這種方式,後臺代碼不能運行。

系統日誌顯示此:

05-09 11:43:15.450: W/GTalkService(25542): [DataMsgMgr] broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE cat=[net.scimob.xxxxxx] (has extras) } 

我不知道爲什麼它適用於以前版本的Android和沒有4.0及以上。也許谷歌改變了他們的代碼。

ps:當我使用任務殺手時,它不會以相同的方式殺死應用程序,並且c2dm推送仍然有效。

我希望這將有助於未來!

回答

4

如果我正在使用「管理應用程序 - >我的應用程序 - >強制停止」來關閉應用程序,並嘗試將推送發送到我的設備,它不起作用。

正確。不要這樣做。

它適用於Android版本低於4.0的所有其他設備。

從Android 3.1開始就可以看到這種效果。第一次安裝或強制停止的應用程序在用戶手動啓動某些活動之前不會再運行。

+0

謝謝你的回答。這讓我可以節省搜索時間的時間,以便在用戶手動殺死應用程序時不再工作。 – thomasg

+0

是否有任何官方文檔介紹了「強制停止」行爲如何影響與c2dm相關的內容? –

+1

@PaulE .:「與c2dm相關的東西」與非「c2dm相關的東西」沒有區別。 http://developer.android.com/about/versions/android-3.1.html#launchcontrols – CommonsWare