我开始使用 Google 的 C2DM。此过程的一部分涉及在注册发生时接收广播意图。在Google 的官方 C2DM 文档中,示例代码在 BrodcastReceiver 的 onReceive() 方法中显示了以下注释:
// Send the registration ID to the 3rd party site that is sending the messages.
// This should be done in a separate thread.
但是,我读过的所有内容,包括BroadcastReceiver 的文档,都表明从 onReceive() 启动线程几乎肯定会导致问题,因为一旦 onReceive() 返回,该进程可能很快就会被终止。
有人可能只是犯了一个错误,我应该忽略关于使用单独线程的评论,但我猜他们这么说是有原因的,即使它具有误导性。
在返回之前是否有理由不能或不应该使用与 onReceive() 相同的线程中的网络?如果这样做有问题,那么处理必须是常见情况的正确方法是什么,即使在 C2DM 之外也是如此?启动服务?