基础知识
绑定服务是Service类的实现,可让其他应用与其绑定和交互。要提供服务绑定,您必须实现onBind()回调方法。该方法返回的IBinder对象定义了客户端用来与服务进行交互的编程接口。
绑定到已启动服务
正如服务文档中所述,您可以创建同时具有已启动和绑定两种状态的服务。 也就是说,可通过调用startService()启动该服务,让服务无限期运行;此外,还可通过调用bindService()使客户端绑定到服务。
如果您确实允许服务同时具有已启动和绑定状态,则服务启动后,系统“绝对不会”在所有客户端都取消绑定时销毁服务。 为此,您必须通过调用stopSelf()或stopService()显式停止服务。
尽管您通常应该实现onBind()或onStartCommand(),但有时需要同时实现这两者。例如,音乐播放器可能发现让其服务无限期运行并同时提供绑定很有用处。 这样一来,Activity 便可启动服务进行音乐播放,即使用户离开应用,音乐播放也不会停止。 然后,当用户返回应用时,Activity 可绑定到服务,重新获得回放控制权。
请务必阅读管理绑定服务的生命周期部分,详细了解有关添加绑定已启动服务时该服务的生命周期信息。
客户端可通过调用bindService()绑定到服务。调用时,它必须提供ServiceConnection的实现,后者会监控与服务的连接。bindService()方法会立即无值返回,但当 Android 系统创建客户端与服务之间的连接时,会调用ServiceConnection上的onServiceConnected(),向客户端传递用来与服务通信的IBinder。
多个客户端可同时连接到一个服务。不过,只有在第一个客户端绑定时,系统才会调用服务的onBind()方法来检索IBinder。系统随后无需再次调用onBind(),便可将同一IBinder传递至任何其他绑定的客户端。
当最后一个客户端取消与服务的绑定时,系统会将服务销毁(除非startService()也启动了该服务)。
当您实现绑定服务时,最重要的环节是定义您的onBind()回调方法返回的接口。您可以通过几种不同的方法定义服务的IBinder接口,下文对这些方法逐一做了阐述。
创建绑定服务
可以通过三种方法定义接口
3.使用 AIDL
https://developer.android.com/guide/components/bound-services.html#Basics
三种方法均可以在上述网址上看到,这里就不一一陈述。
Android 通知栏Notification
功能作用
1.显示接收到短消息、即使消息等信息 (如QQ、微信、新浪、短信)
2.显示客户端的推送消息(如有新版本发布,广告,推荐新闻等)
3.显示正在进行的事物(例如:后台运行的程序)(如音乐播放器、版本更新时候的下载进度等)
对应的官方链接
官方:http://developer.android.com/design/patterns/notifications.html
译文:http://adchs.github.io/patterns/notifications.html
使用教程 :http://developer.android.com/training/notify-user/index.html
开发文档 :http://developer.android.com/reference/android/app/Notification.html
网友评论