当我使用 android 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:当我使用任务 killer 时,它不会使用相同的方式来终止应用程序,并且 c2dm 推送仍然有效。
我希望这对将来有所帮助!
最佳答案
If I'm closing application using "Manage apps->My application->force stop" and I try to send a push to my device, it doesn't work.
正确。不要这样做。
It works with all my other devices which have an Android version less than 4.0.
从 Android 3.1 开始可以看到这种效果。应用程序在首次安装或强制停止时不会再次运行,直到用户手动启动某些 Activity 。
关于Android 4.0 c2dm问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513530/