美文网首页工作生活
安卓编程技巧: Service的生命周期

安卓编程技巧: Service的生命周期

作者: 丁哥开讲 | 来源:发表于2019-07-01 07:55 被阅读0次

    安卓编程技巧: Service的生命周期

    在安卓编程过程中,有时候需要在后台跑一个服务,这时候就需要了解Service的知识,这一期呢,我们来看一下Service的生命周期。

    服务运行的目的是在后台处理一些需要长时间才能完成的操作。不提供任何的用户界面。

    服务可以由一个程序组件来启动,程序进程退出后仍然可以继续运行。

    服务也可以跟一个程序组件进行绑定。

    服务可以用来进行进程间的通信。比如说服务可以处理网络的操作,播放音乐,处理文件输入输出,可以跟content provider进行交互。

    目前有三种类型的服务。

    前端服务

    前端服务主要给用户提供一些提示性的消息,通过notification来实现这一目的。比如说你下载一个文件,完成下来以后需要通知用户。即使用户不与程序进行交互,前端服务也依然可以保持运行。

    后端服务

    后端服务主要用来做一些不需要用户知道的操作。比如说数据的加密和解密,数据的解压缩等等。

    绑定服务

    bindService用来实现服务的绑定,一个服务可以被多个组件进行绑定,所有的组件解绑以后,这个服务就会被消除释放掉。

    绑定服务是通过client-server的机制来进行交互通信的。通过发送请求和接收请求的操作,绑定服务可以实现进程间的通信。

    启动服务的两种方式

    onStartCommand允许组件直接启动服务。

    onBind允许组件以绑定的方式启动服务。

    服务的访问权限

    你可以定义你的服务为私有服务,这样只有你自己的组件可以访问他。

    也可以定义为公共服务,这样任何其他的程序都可以启动你的服务。

    服务的生命周期

    onStartCommand

    当另一个组件调用startService的时候, 这个回调函数会被调用。如果你使用了这种方式,你需要自己来终止你的服务运行。终止服务运行的方式,是调用如下两个方法stopSelf或者stopService。

    onBind

    当另一个组件调用bindService的时候,这个回调函数会被调用。这时你必须返回一个IBinder。通过这个返回接口,客户端才可以与这个服务进行交互通信。如果你不允许你的服务被绑定,你可以返回空。

    onCreate

    这个回调函数用来在创建服务时进行数据的初始化。它会在上面两个函数被调之前调用。如果服务已经被创建,这个函数不会被调用。

    onDestroy

    这个函数是在服务被消毁的时候调用的。在这个函数中,你需要用来释放系统的资源,比如释放掉线程,释放掉listener, 释放receiver等等。

    这个是完整的服务的生命周期图。

    这里是丁哥开讲,关于服务的生命周期我们就先说到这里吧,如果你有什么要说的,请给我留言,我们可以继续深入讨论,谢谢。

    相关文章

      网友评论

        本文标题:安卓编程技巧: Service的生命周期

        本文链接:https://www.haomeiwen.com/subject/fpjwcctx.html