四大组件之一Servier

来源:互联网 发布:淘宝免费申请试用报名 编辑:程序博客网 时间:2024/06/13 08:20
第三大组件Service:服务
windows:长期后台运行没有界面的进程就叫服务
android:长期后台运行,没有界面,服务是运行在当前运用程序进程里面


服务应用场景:
长期后台运行,没有界面的组件
1,监听一个硬件是否被插入
2,连接服务区刷新的数据
3,定时的轮询
注意:服务是运行在主线程里面的,不可以直接在服务里面编写耗时逻辑,要在子线程里面


进程的优先级
前台进程:用户正在操作的应用程序所在的进程就是前台进程
可视进程:用户不能操作这个应用程序,但是界面用户任然可以看到
服务进程:应用程序有一个服务代码正在运行
后台进程:应用程序有界面,但是界面被用户最小化
空进程:应用程序没有任何运行的Activity,service

前台进程>可视进程>服务进程>后台进程>空进程



服务的生命周期:
start的方式开启服务,服务只会被创建一次,在创建的时候执行oncreate方法,一旦服务创建完毕,在去开启start方法


01,我们要自爱Activity里面调用Service里面的方法,直接调用,行不通
应该怎么办?
02,在服务【Service】里面创建内部类,间接地去调用服务里面的方法
a,绑定服务,得到中间人的队形,onbind()方[MyBinder对象]
b,这里的MyBinder的对象,就是服务内部类的对象





本地服务:就是自己的应用程序中
远程服务:在其他程序里面
重要概念:
进程   
操作系统分配的独立的内空间


绑定远程服务调用服务方法的流程
1,根本地服务的代码编写时一样
2,远程服务的接口定义文件---->.aidl
3,把接口定义问价的访问修饰符全部删除  public private
4,原来代理人MyBinder extends Binder implement IService--->extends IService.Stub
5,先把远程服务.aidl文件拷贝到本地应用程序的工程目录里面,包名一致
6,iService =IService.Stub.asInterface(service); 得到远程服务的代理对象
7,通过代理对象调用远程服务的方法


0 0
原创粉丝点击