Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从广播接收器启动异步任务_Android_Android C2dm - Fatal编程技术网

Android 从广播接收器启动异步任务

Android 从广播接收器启动异步任务,android,android-c2dm,Android,Android C2dm,我想知道从广播接收器启动异步任务是否被认为是一种不好的做法?我基本上是在谷歌的C2DM服务器上注册的,然后当我截获注册的广播接收器时,我想把它发送到我的服务器上 实现这一目标的最佳方式是什么 是的,这被认为是不好的做法。这是因为如果您从BroadcastReceiver启动AsyncTask,如果onReceive()返回并且没有其他活动组件运行,Android可能会终止您的进程 正确的方法是从广播接收器启动服务。这个服务应该管理异步任务。通过这种方式,Android将了解活动组件,并且不会过早

我想知道从广播接收器启动异步任务是否被认为是一种不好的做法?我基本上是在谷歌的C2DM服务器上注册的,然后当我截获注册的广播接收器时,我想把它发送到我的服务器上


实现这一目标的最佳方式是什么

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


正确的方法是从
广播接收器
启动
服务
。这个
服务
应该管理
异步任务
。通过这种方式,Android将了解活动组件,并且不会过早地将其杀死(除非出现其他关键情况,如内存不足)。

从Honeycom开始,您可以调用,然后您有10秒左右的时间异步完成工作


可以显示使用示例。

如果在异步任务中引用了应用程序上下文,该怎么办?一旦onReceive()返回,系统还会终止进程吗?进程被终止的概率与谁引用了进程中的内容完全无关。被终止的概率在很大程度上取决于进程中当前活动的组件以及它们处于生命周期的哪个阶段。嗯,兄弟,是否可以详细说明“如果onReceive()返回并且没有其他活动组件运行,则终止您的进程。”?某处有医生吗?