一.Service


  1. Service是一种可以在后台长期运行且不提供用户UI的程序,常用来处理一些耗时操作性操作,如网络传输或播放音乐。


2.Service可以分为有限生命和无限生命,当系统资源不足是,Activity可能被杀掉,但Service不会。


3.启动Service需要在清单文件中声明<Service>标签。启动Service有两种方式:

Context.startService()【不绑定,无限生命】和Context.bindService()【绑定,有限生命】.

   a.startService()调用onstartCommand()方法,销毁时直接调用onDestroy()方法。

   b.bindService()调用onBind()返回客户端的一个IBinder接口,当没有任何对象绑定Service时,      Service会被系统销毁。





二.BroadcastReceiver



广播是Android系统应用程序之间通信的手段,当有特定事件发生时,如来电、来短信、电池电量变化时,Android系统都会产生特定的Intent对象并自动进行广播,而针对特定事件注册BroadcastReceiver可以接收到这些广播,并获取到Intent对象中的数据进行处理。

在广播Intent对象时可以指定用户权限,只有获得了相应权限的BroadcastReceiver才能接收并处理相应的广播。


一个BroadcastReceiver对象只有在被调用了onReceive()时才有效,当从该函数返回时,该对象就无效了,生命周期也就结束了。


不能生成ui,通过NotificationManager来通知用户有事情发生。



实例:


前面的检测手机电量实例