从广播接收机开始一个asynchronous的

我想知道,如果从广播接收机启动一个asynctask被认为是不好的做法? 我基本上注册与谷歌的C2DM服务器,然后当我拦截注册,广播接收器,我想发送到我的服务器。

完成这个的最好方法是什么?

Solutions Collecting From Web of "从广播接收机开始一个asynchronous的"

是的,这被认为是不好的做法。 那是因为如果你从BroadcastReceiver启动AsyncTask ,如果onReceive()返回并且没有其他活动组件运行,Android可能会AsyncTask你的进程。

正确的方法是从BroadcastReceiver启动Service 。 而这个Service应该pipe理AsyncTask 。 这样Android就会意识到活动组件,Android不会过早地杀死它(除非出现其他临界条件,比如没有足够的内存条件)。

从Honeycomb开始,你可以调用goAsync() ,然后你有10秒左右的时间来asynchronous完成你的工作。

使用示例可以在这里显示。