我想知道从广播接收器启动异步任务是否被认为是一种不好的做法?我基本上注册了谷歌的 C2DM 服务器,然后当我拦截注册的广播接收器时,我想将它发送到我的服务器。
实现此目标的最佳方法是什么?
最佳答案
是的,这被认为是不好的做法。这是因为如果您从 BroadcastReceiver
启动 AsyncTask
,如果 onReceive()
返回并且没有其他 Activity 组件在运行,Android 可能会终止您的进程。
正确的方法是从BroadcastReceiver
启动Service
。而这个 Service
应该管理 AsyncTask
。这样 Android 就会知道 Activity 组件并且 Android 不会过早地杀死它(除非出现其他关键情况,例如内存不足的情况)。
关于android - 从广播接收器启动异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900373/