android service生命周期
来源:互联网 发布:关明生为什么离职知乎 编辑:程序博客网 时间:2024/06/05 05:33
移动终端的程序UI是很重要的,程序员往往在界面上花费很大的功夫,但也可能会因为太过关注界面忽略一些很重要的知识。刚刚接手一个项目是pc客户端android手机驻留程序,在android这边的开发主要是完成pc端需要的手机数据的读取和与pc客户端的通信。首先要说明一下这个程序是没有界面的,在程序启动器是找不到应用程序入口的。程序都是以Service的形式在后台偷偷摸摸的进行的。实现这些工作的方式用到的组件主要是Service和BroadcastReceiver。所以我就温习了一下这两个组件的相关知识和联系。
-Service
生命周期:
相比较Activity,在生命周期中少了对界面的处理,少了OnResume()和OnPause()和OnStop()而OnStart(Intent i,int startId)在sdk2.0之后弃用,由OnStartCommand(Intent I,int flags,int startId)代替。由于服务的跨进程、常驻留的特性,在生命周期上分两种情况,在官方文档中如下图。
情况一:无绑定服务--在程序上下文中调用了startService(),服务建立回调onCreate(),之后调用onStartCommand()启动服务,直到当其他组件stopService(Intent service)或它自身调用stopSelf()停止服务Service进入生命周期的onDestory()状态。表明服务已经中止。
情况二:有绑定服务—在程序上下文中调用了bindService(),如果将要绑定的服务未建立即先建立,同时回调onCreate(),之后是绑定回调onBind(),即绑定了服务。当程序上下文中调用了unBindService(),该服务回调onUnbind(),最终中止服务回调onDestory()。
有绑定服务的具体生命周期如图:
对于有绑定的服务如果是纯粹用context.bindService()启动的,其生命周期由系统自动管理,即是当所有绑定到服务的client组件都解绑后自动中止。
而如果用startService()启动的服务,无论是否绑定,最终都需要通过Service自身调用stopSelf()或别的组件调用stopService()来终止服务。
- android service 生命周期
- 【Android】Service 生命周期
- android service生命周期
- android service生命周期
- Android 中Service生命周期
- Android Service生命周期
- android service生命周期
- android service 生命周期
- android service 生命周期
- Android Service的生命周期
- android 58Service生命周期
- Android service生命周期
- Android Service 生命周期
- android service生命周期
- Android 的Service生命周期
- android service 生命周期
- Android Service 的生命周期
- Android Service生命周期
- Android XML文件使用
- WPF:捕获导航错误
- base64编码是怎么工作的?
- CityEngine开发竞赛-作品常见问题分析及解答
- iOS开发之缓存(一):内存缓存
- android service生命周期
- 内部类总结
- OracleOraHome90Agent
- struts2中从页面取值的三种方式
- JSON对象存在换行符
- shell 编程手册
- Spring Annotation
- commons-dbutils的操作方法
- 搭建开发环境