一.Service
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来通知用户有事情发生。
实例:
前面的检测手机电量实例。