zoukankan      html  css  js  c++  java
  • Service的生命周期

    Service启动的方式1  start:

     Activity.startService(intent); 开启

     Activity.stopService(intent);  停止

     Service的运行的生命周期为:

         onCreate();   onStartCommand(); onDestroy();

        如果Service已经启动 则不会再调用onCreate();会直接调用onStartCommand();

    在当前Activity中启动Service ,可以在另一个Activity中停止Service;

    如果当前app关闭,没调用stopService,Service会继续在后台运行;

    Service启动方式2 binder:

    Activity.bindService(); 绑定

    Activity.unbindService(); 解除绑定

    Service的生命周期为

      onCreate(); onBind(); onUnbind(); onDestroy();

    如果当前Activity Finish();关闭后,会自动调用unbindService(),解除绑定;

    Service会调用onDestroy();关闭服务;

    当两种方式组合使用时

    启动:

       Activity.startService(intent);

       Activity.bindService();

    停止:(要调两个方法才能停止Service)

        Activity.stopService(intent)

        Activity.unbindService();

    组合使用启动时 

      Activity.startService(intent);

         Activity.bindService();

      如果Service的 public boolean onUnbind(Intent intent) 返回true时

       调用Activity.unbindService();

      下次调用Activity.bindService();时;不会再调用onBInd(); 而是调用onRebind();

     Start Service 和Bind Service 的区别 :

     1.通过startservice开启的服务.一旦服务开启, 这个服务和开启他的调用者之间就没有任何的关系了. 
    调用者不可以访问 service里面的方法. 调用者如果被系统回收了或者调用了ondestroy方法, service还会继续存在  。
    2.通过bindService开启的服务,服务开启之后,调用者和服务之间 还存在着联系 , 
    一旦调用者挂掉了.service也会跟着挂掉 .

  • 相关阅读:
    ubuntu 下redis的安装简介
    Oracle 的几种循环方式介绍
    NIO 概述 与 通信实例
    io 的一些简单说明及使用
    webSocket的 原理 及 实现
    事务 与事务的 隔离级别 简单说明
    case 函数的简单使用记录下
    java HttpClient 忽略证书的信任的实现 MySSLProtocolSocketFactory
    南京小吃八绝
    JavaScript图表库(百度)
  • 原文地址:https://www.cnblogs.com/pbq-dream/p/5390797.html
Copyright © 2011-2022 走看看