zoukankan      html  css  js  c++  java
  • Android四大组件之Service

    1.Service是什么?

     当后台需要监听某些程序,或者后天进行长时间的服务。或者后天开始进行操作长时间的业务,而页面可能被销毁。

    和activity相识,但是service没有界面。

    service前台,后台?

    何为前台,就是有和用户交互的程序。

    service怎么交互?通知栏。

    所以。service的startForeground需要传入notification的东西。

    默认service都在后台运行。

    2.Service的生命周期。

    生命周期是多进程系统的特色,尤其是前台后台的概念总是相识的。

    而android系统同很多系统都是一样的,就是每个过程都是系统通知。

    或者说就是框架设计。

    android系统管理组件的各大框架,流程,而具体应用无需关心系统级的逻辑,页面切换,进程通信等问题。

    那么先来看Service的生命周期吧:如图:

    context.startService() ->onCreate()- >onStart()->Service running--调用context.stopService() ->onDestroy()

    context.bindService()->onCreate()->onBind()->Service running--调用>onUnbind() -> onDestroy() 从上诉可以知道分别对应本地的,,

    以及远程的,也对应不同的方式启动这个服务。

    3.service的类型

    本地服务和远程服务。

    本地服务主要应用于程序内部,由context.startService() 启动。

    远程服务一般供内部或者远程程序服务。由context.bindservice 启动。

    区别:

    1).本地服务,是client端启动的,但是启动以后,他们之间没有联系,service关闭,有它自己stopself。

    2).远程服务是client通过AIDL的方式启动,bindservice,他们就是就有了联系。

    AIDL可以通过代理的方式,使client端直接调用service的方法。

    4.service如何与activity交互

    本地服务,一般通过广播的方式传回service运行的结果。

    远程服务,可以通过观察者的方式,返回结果。

  • 相关阅读:
    lazy懒载入(延迟载入)UITableView
    POJ 3277 City Horizon
    Effective C++ Item 26 尽可能延后变量定义式的出现时间
    2014 百度之星题解1001
    搭建和測试Android JAVA NDK
    Oracle数据库案例整理-Oracle系统执行时故障-内存过少导致分配共享内存失败
    “以房养老”保险方案为啥行不通?
    Mysql上的RAC:Percona XtraDB Cluster负载均衡集群安装部署手冊
    mysql 数据库查询最后两条数据
    00109_反射概述
  • 原文地址:https://www.cnblogs.com/deman/p/4229429.html
Copyright © 2011-2022 走看看