美文网首页
关于Service

关于Service

作者: 小小的开发团体 | 来源:发表于2018-08-08 08:16 被阅读0次

 Service是一种不提供用户交互页面但是可以在后台长时间运行的组件,可以通过在AndroidManifest.xml设置Service的android:process=":remote"属性,让Service运行另一个进程中,也就是说,虽然你是在当前应用启动的这个Service,但是这个Service和这个应用并不是同一个进程。

Android中Service总共有三种启动方式:

Scheduled,可定时执行的Service,是Android 5.0(API LEVEL 21)版本中新添加的一个Service,名为JobService,继承Service类,使用JobScheduler类调度它并且设置JobService运行的一些配置。具体文档可以参考JobScheduler,如果你的应用最低支持版本是21,官方建议使用JobService。

Started,通过startService()启动的Service。通过这种方式启动的Service会独立的运行在后台,即使启动它的组件已经销毁了。例如Activity A使用startService()启动了Service B,过了会儿,Activity A执行onDestroy()被销毁了,如果Service B任务没有执行完毕,它仍然会在后台执行。这种启动方式启动的Service需要主动调用StopService()停止服务。

Bound,通过bindService()启动的Service。通过这种方式启动Service时候,会返回一个客户端交互接口,用户可以通过这个接口与服务进行交互,如果这个服务是在另一个进程中,那么就实现了进程间通信,也就是Messenger和AIDL,这个会是下篇文章的重点。多个组件可以同时绑定同一个Service,如果所有的组件都调用unbindService()解绑后,Service会被销毁。

Service是一个抽象类,需要我们去实现它的抽象方法onBind(),Service有且仅有这一个抽象方法,还有一些其他的生命周期回调方法需要复写帮助我们实现具体的功能。

onCreate(),在创建服务时候,可以在这个方法中执行一些的初始化操作,它在onStartCommand()和onBind()之前被调用。如果服务已经存在,调用startService()启动服务时候这个方法不会调用,只会调用onStartCommand()方法。

onStartCommand(),其他组件通过startService()启动服务时候会回调这个方法,这个方法执行后,服务会启动被在后台运行,需要调用stopSelf()或者stopService()停止服务。

onBind(),其他组件通过bindService()绑定服务时候会回调的方法,这是Service的一个抽象方法,如果客户端需要与服务交互,需要在这个方法中返回一个IBinder实现类实例化对象,如果不想其他客户端与服务绑定,直接返回null。

onDestroy(),当服务不在还是用且即将被销毁时,会回调这个方法,可以在这个方法中做一些释放资源操作,这是服务生命周期的最后一个回调。

相关文章

  • rest与webservice

    关于Web Service和Rest Service的理解

  • 关于Service

    Service是Android四大组件之一,是一种运行在后台的服务,通常不需要和用户交互。Service默认是运...

  • 关于Service

    Service是一种不提供用户交互页面但是可以在后台长时间运行的组件,可以通过在AndroidManifest.x...

  • 关于service

    关于service比较全面的介绍 http://blog.csdn.net/guolin_blog/article...

  • 关于Service

    前言 Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。 Service 可由其他应用...

  • 关于Service

    1、Service必须在Manifest中注册 2、startService: 如果没有创建过,会执行onCrea...

  • 关于Android

    前言(基础篇) 关于Activity Activity堆栈管理 关于Fragment 关于Service ...

  • Android IntentService全面解析

    1. IntentService简介 关于Service 我们知道,Service用于执行后台任务,而所谓的后台任...

  • Android Service学习笔记

    参考:Android Service完全解析,关于服务你所需知道的一切(上)Android Service完全解析...

  • Android基础知识:Service(4)更多知识

    废话 今天我们来学习下关于Service的更多知识 前台服务 IntentService 在Service中启动A...

网友评论

      本文标题:关于Service

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