安卓绑定服务

1、服务
Android中的四大组件之一它能够长期在后台运行且不提供用户界面即使用户到另一应用程序,服务仍可以在后台运行

2、服务的特点

  • Service在后台运行,不用与用户进行交互
  • 即使程序被切换到后台,或者用户打开新的应用,服务仍可运行
  • 服务并非运行在独立的进程中,而是依赖于创建服务的应用程序进程。如果某个应用进程被杀掉
  • 在默认情况下, Service运行在应用程序进程的主线程线程中,如果需要在
    Service中处理些网络连接等耗时的操作,那么应该将这些任务放在 Service的分线程中处理,避免阻塞用户界面
    在这里插入图片描述

创建服务

  • 自定义类继承 Service AndroidManifest xm中注册服务

3、服务的生命周期

  • startService方式开启服务的生命周期
  • 服务会执行 onCreate()→onStartCommand(方法,服务处于运行状态,直到自身调用
    stopSelf()方法或者其他组件调用 stopService方法时服务停止,最终被系统销毁。
  • 服务会长期的在后合运行,并且服务的状态与开启者的状态没有关系。

4、 bindService方式开启服务的生命周期

  • 服务会执行 onCreate()→onBind()方法,服务处于绑定状态,客户端通过
    unbindService()方法关闭连接,解除绑定时,系统将直接销毁服务。服务与开启者的状态有关,当调用者销毁了,服务也会被销毁。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210227114508197.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA4NjQ2Nw==,size_16,color_FFFFFF,t_70)
6、远程服务通信

远程服务通信是通过ADL(Android Interface Definition Language实现的,它是一种接口定义语言(nterface Definition Language),其语法格式非常简单,与Java中定义接口很相似。

 

```bash
package cn. itcast. service:

1

 interface IService{

 String getName(). int getPrice():

定义好AIDL接口之后,接着需要在应用程序中创建 Service的子类该 ServiceonBind的方法所返回的 IBinder对象应该是ADT所生成的 IService.stub的子类

远程服务

  • 注册文件配置:Android:process=“:remote”
  • 和主线程分离;

服务销毁

  • 如果启动服务:startservice()binservice(intent,com,service。BIND_AUTO-CREATE);同时都使用了,只单击某一个stopservice,unbinservice停止都不会调用onDestroy()必须这个停止方法都点击一次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值