我想知道,在清单中静态注册广播接收器和启动服务之间会有什么区别?即使应用程序处于后台,两者都会运行,在我看来接收器的编码要简单得多。我在这里错过了什么吗?
答案 0 :(得分:5)
BroadcastReceiver
是一个应用程序组件,用于对系统范围的应用程序间广播做出反应,例如BOOT_COMPLETED
或WIFI_STATE_CHANGED
。不应使用BroadcastReceiver
来运行AsyncTask
或执行其他此类操作;在这种情况下,它会启动Service
。当手机上发生其他事件时,广播用于唤醒应用。它类似于微处理器中的中断或Linux中的SIGNAL
。
Service
是一个应用程序组件,它执行一些长时间运行的操作,例如计算密集型计算或Web服务调用,而不需要UI组件(或者不需要用户交互< / em>的)。即使前景Service
被解除,Activity
也会继续工作,并在完成工作后自行结束。
Service
民意调查,而BroadcastReceiver
中断。这两者在性质和目的上是不同的,因此不可互换。