• Android Service组件


      Service是Android系统提供的四大组件之一,它的地位和Activity的并列的,只不过没有Activity的使用频率高。顾名思义Service就是运行在后台的一种服务程序,一般情况下,很少和用户交互,最大的特点就是没有可视化界面。

              定义一个Service类只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidMainifest.xml配置文件中通过<service>或者使用bindService()方法来绑定一个存在的Service,还可以通过RPC(远程进程调用)机制来实现不同进程间Service的调用。

     Service是什么?        

    1、Service 是一个运用程序组件;

    2、Service 没有图形化界面;

    3、Service通常来处理一些耗时较长的操作;

    4、可以使用Service更新Content Provider,发送Intent以及启动系统的通知等等。

    Service不是什么?

    1、Service不是一个单独的进程;

    2、Service不是一个线程。

    启动和停止Service

          一旦定义好一个Service就可以在其他组件中启动该Service来使用它了。启动一个Service使用Context.startService(Intent intent)方法,这个与启动Activity类似,也是传递一个Intent。当我们调用startService()方法时,被调用的Service会调用它的onCreate()方法(如果该Service还未创建),接着调用onStart()方法。一旦Service启动后将一直运行知道调用了Context.stopService()或者stopSelf()。

    绑定一个已经存在的Service

          我们可以调用startService()方法来启动一个Service方法,也可以通过bindService()方法来绑定一个Service。和调用startService()方法一样,Service会调用onCreate()来创建Service(如果还未创建),但不会调用onStart()方法而是调用onBind()返回客户端一个IBinder接口。绑定Service一般是用在远程Service调用。

           绑定Service需要三个参数:bindService(intent,conn,Service.BIND_AUTO_CREATE);第一个是Intent;第二个是ServiceConnection对象,我们创建该对象实现其onServiceConnected()和onServiceDisconnected()来判断连接成功或断开连接;第三个参数是如何创建Service,一般指定绑定时自动创建。

    远程Service调用

           在Android平台中,各个组件运行在自己的进程中。它们之间不能相互访问的,但是在程序之间不可避免地要传递一些对象,在进程之间相互通信。为了实现进程之间的相互通信,Android采用了一种轻量级的实现方式RPC(Remote Procedure Call,远程进程调用)来完成进程之间通信,并且Android通过接口定义语言(Android Interface Definition Language,AIDL)来生成两个进程之间相互访问的代码。例如你在Activity里的代码需要访问Service中的一个方法,那么就可以通过这种方式来实现了。AIDL RPC机制是通过接口来实现的,类似Windows中的COM或者Corba,但它是轻量级的,客户端和被调用实现是通过代理模式实现的。代理类和被代理类实现同一个接口即前面提到的Ibinder。

  • 相关阅读:
    PE格式详细讲解2 系统篇02|解密系列
    结构体与共用体06 零基础入门学习C语言58
    PE格式详细讲解3 系统篇03|解密系列
    我的学习路
    结构体与共用体07 零基础入门学习C语言59
    PE格式详细讲解2 系统篇02|解密系列
    PE格式详细讲解3 系统篇03|解密系列
    Windows Azure 社区新闻综述(#61 版)
    Django 现可在 Windows Azure 上使用
    Windows Azure Active Directory正式发布:已提供了超过 2650 亿个身份验证和服务了290万个组织!
  • 原文地址:https://www.cnblogs.com/xilin/p/2613801.html
Copyright © 2020-2023  润新知