• Android Service的分类详解


      按照启动方式分类

      谷歌官网对Service的分类

      Service根据启动方式分为两类:StartedBound。其中,Started()是通过startService()来启动,主要用于程序内部使用的Service,而Bound是通过bindService()来启动,允许多个应用程序共享同一个Service

      Started Service

      1.startService()来启动

      startService通过Activitycontact

      调用startService(service).

      2,一旦启动,就运行在后台,即便启动它的对象(Activity)都销毁了

      3,通常只启动,不返回值

      4,通常网络上传或者下载,操作完成后,自动停止

      onStartCommand()

      onStartCommand服务里面的方法

      Bound Service

      1,bindService()来绑定

      会调用bindService来绑定

      2,提供客户端服务器接口来启动

      它有个客户端和服务器段的模型

      3,发送请求,得到返回值,甚至通过IPC来通讯

      ipc内部进程通讯来进行通讯。

      4,一个服务可以被多个调用者绑定,只要有一个绑定者,服务运行,所有绑定者都退出,服务退出

      我现在同样是一个服务,我可能用Activity A跟它绑定一下,B跟他绑定一下,当我A退出了的时候,由于B还绑定的,所以这个服务还不会退出。

      就是当所有的绑定者都退出了,我们的服务才会退出。

      onBind()

      他会用到的一个重载方法叫onBind

      按服务性质分

      Local Service 

      本地服务,指的就是同一个进程,用于应用程序内部

      功能:用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。

      使用:在Service可以调用Context.startService()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。

      Remote Service  

      远程服务,在android里面远程指的是不同的进程之间也会有服务器端客户端的模型,用于android系统内部的应用程序之间。

      功能:可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。

      使用:可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务。调用Context.bindService()方法建立连接,并启动,以调用 Context.unbindService()关闭连接。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。

      按实现方法分类

      Java Service

      Native Service

      原生服务就是我们用cc++,实现的系统级的服务我们可以把它当成在library内层。

      Native Service,这是Android系统里的一种特色,就是通过C++或是C代码写出来的,供Java进行远程调用的Remote Service,因为C/C++代码生成的是Native代码(机器代码),于是叫Native Service。随着Android系统的性能需求越来越高,Native Service需求将越来越高。

      在Service里面要用到它,就不需要再manifest里面配置好,有了配置就知道,manifest所有的元素都是类,所以我们肯定有个Service的类。

    Service的配置很简单,就是配置一下它的名字就好了。

     

    原文链接:http://www.maiziedu.com/wiki/component/classify/

  • 相关阅读:
    Pure-ftpd无法连接到服务器 425错误
    jQuery 取选中的radio的值方法
    Linux中RM快速删除大量文件/文件夹方法
    CSS(七):浮动
    CSS(六):盒子模型
    CSS(五):背景、列表、超链接伪类、鼠标形状控制属性
    CSS(四):字体和文本属性
    CSS三:CSS的三种引入方式
    CSS(二):选择器
    CSS(一):CSS简介和基本语法
  • 原文地址:https://www.cnblogs.com/gaobig/p/5924482.html
Copyright © 2020-2023  润新知