首页 > 代码库 > Android 广播与服务

Android 广播与服务

一,广播2种不同的注册方式的选择:

    Andorid 广播有手动注册与清单文件注册2种方式:

  1.    清单文件注册,不需要在代码中进行任何操作,甚至不需要实例化广播接收者.因为Android将会创建实例并管理它的生命周期.注意的是,接收onReceive()调用的实例只有在onReceive()的持续时间内有效.实际上,每个对onReceive()方法的调用都有可能是在不同的广播接收实例上进行.意味着必须避免异步调用其它类.
  2. 手动注册,必须在不用时注销广播,如果在一个活动中注销失败会导致一个异常,其中Andorid会发出有内容泄露的警告.这是2种不同注册的主要区别之一,手动注册时,应用会负责广播接收器的生命周期;而清单文件注册时,Android会处理生命周期.
二,广播与服务对比:
     与服务相比,广播接收器是一个被动收集数据的更轻量级的应用组件.一个基于清单注册的广播接收器不需要在onReceive()这外存在.因此它可以在方法返回立刻进行垃圾回收.广播接收器的缺点:不会在各个onReceive()之间维持状态.一旦onReceive()方法返回,实例将会被垃圾回收.可能导致实例数据无法保存,从而影响下次onReceive()的调用,可能是一个难以克服的问题,