zoukankan      html  css  js  c++  java
  • Android中service的生命周期

    Service作为Android四大组件

    • Service
    • Activity
    • ContentProvider
    • BroadcastReceiver

    之一,应用非常广泛,和Activity一样,Service也有一系列的生命周期回调函数。


    1.生命周期流程图:


    • onCreate():
      首次创建服务时,系统将调用此方法。如果服务已经运行,则不会调用此方法,该方法只调用一次。

    • onStartCommand():
      当另一个组件通过调用starService()请求启动服务时,系统将调用此方法。

    • onDestroy():
      当服务不在使用且将被销毁时,系统将调用此方法。

    • onBind():
      当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。

    • onUnbind():
      当另一个组件 通过调用unbindService()与服务解绑时,系统将调用此方法。

    • onRebind():
      当旧的组件与服务解绑后,另一个新的组件与服务绑定时,onUnbind()返回true时,系统将调用此方法。

    2.生命周期方法

    在Service的生命周期中,常用的方法有:

    • 手动调用的方法:
    手动调用的方法 作用
    startService() 启动服务
    stopService() 关闭服务
    bindService() 绑定服务
    unbindService() 解绑服务
    • 自动调用的方法
    自动调用方法 作用
    onCreat() 创建服务
    onStartCommand() 开始服务
    onDestroy() 销毁服务
    onBind() 绑定服务
    onUnbind() 解绑服务

    3.生命周期的调用

    1. 启动Service服务
      单次:startService()->onCreate()->onStartCommand()
      多次:startService()->onCreate()->onStartCommand()->onStartCommand()
    2. 停止Service服务
      stopService() —> onDestroy()
    3. 绑定Service服务
      bindService() —> onCreate() —> onBind()
    4. 解绑Service服务
      unbindService() —> onUnbind() —> onDestroy()
    5. 启动绑定Service服务
      startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()
    6. 解绑停止Service服务
      unbindService() —> onUnbind() —> stopService() —> onDestroy()
    7. 解绑绑定Service服务
      unbindService() —> onUnbind(ture) —> bindService() —> onRebind()

    参考资料

  • 相关阅读:
    NEERC 15 (10/12)
    uoj259 & 独立集问题的一些做法
    Berlekamp-Massey算法简单介绍
    树链剖分的一种用法
    长链剖分
    [黑科技]常数优化的一些技巧
    tarjan解决路径询问问题
    Comet OJ
    洛谷P3835 【模板】可持久化平衡树(FHQ Treap)
    LOJ#107. 维护全序集(FHQ Treap)
  • 原文地址:https://www.cnblogs.com/charlottepl/p/12545594.html
Copyright © 2011-2022 走看看