服务学习和使用

  • 介绍
    可以长期在后台运行,即使用户切到另一个应用程序,服务依旧可以在后台运行。
  • 注意
    使用时候一定要在清单文件中进行静态注册。
    并且自定义一个类extends Service类
  • 服务第一种创建方式以及生命周期
startService的方式开启服务
startService(intent) --->
onCreate()--->
onstartCommand()--->
进入服务运行状态--->
当调用自身的stopself()或者是stopService()--->
onDestroy();

第一中启动服务的特点

使用简单,但是很难与调用者进行通信、数据交换等等必要的操作。服务与调用者之间基本不存在太多的关联
哪怕
  • 服务第二种创建方式以及生命周期
bindService的方式启动服务
bindService(intent,serviceConnection,flag)--->
onBind()--->
客户端绑定了服务--->
当调用unBind()--->
onDestroy()

第二种启动服务的特点

服务与调用者之间可以进行方法调用和数据交互
关键是自定义的两个类,一个是implements  ServiceConnection;一个是extends Binder;
接下来看看如何实现数据交互的过程:
Paste_Image.png
  • 补充:本地服务通信
    上述的方式,可以认为是本地服务通信,就是开发一个Service类,该类会提供一个IBinder onBind(Intent intent)方法,onBind()方法返回的IBinder对象会作为参数传递给ServiceConnection类中的onServiceConnected()方法,这样访问者就可以通过IBinder对象来与Service 进行通信了
  • 补充:远程服务通信
在Android系统中,各个应用程序都运行在自己的进程中,进程之间一般无法直接进行通信,如果想要完成
不同进程之间的通信,就需要使用远程服务通信。
远程服务通信是通过ALDL(Android Interface Definition Language)实现的,是一种接口定义语言。
正在看着。。。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Jianwei's blog 首页 分类 关于 归档 标签 巧用Android多进程,微信,微博等主流App都在用...
    justCode_阅读 5,978评论 1 23
  • 参考: 服务|Android Developers 一. 什么是服务 服务是一个可以在后台执行长时间运行操作而不提...
    NickelFox阅读 562评论 0 3
  • 绑定服务: 绑定服务是客户端-服务器接口中的服务器。绑定服务可让组件(例如 Activity)绑定到服务、发送请求...
    pifoo阅读 1,252评论 0 4
  • 上篇我们讲解了Android中的5中等级的进程,分别是:前台进程、可见进程、服务进程、后台进程、空进程。系统会按照...
    徐爱卿阅读 3,898评论 6 33
  • 漫步雨中, 走在秋的深处, 听雨和落叶呢喃, 任凉软的风拂过脸庞, 任潮湿的空气温润着长发, 忽然怀念那年的自已,...
    水绿如蓝1阅读 151评论 0 1