从广播接收器开始asynctask

Had*_*des 8 android android-c2dm

我想知道从广播接收器启动asynctask是否被视为不良做法?我基本上注册了谷歌的C2DM服务器,然后当我拦截注册的广播接收器时,我想将它发送到我的服务器.

实现这个目标的最佳方法是什么?

ina*_*ruk 18

是的,这被认为是不好的做法.那是因为如果AsyncTaskBroadcastReceiverAndroid 开始,如果onReceive()返回并且没有其他活动组件在运行,则可能会终止您的进程.

正确的方法是开始ServiceBroadcastReceiver.这Service应该管理AsyncTask.这样Android就会知道活动组件,Android不会过早地杀死它(除非出现其他关键条件,比如没有足够的内存条件).