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()

    参考资料

  • 相关阅读:
    微信公众号非善意访问的限制 php curl 伪造UA
    cross-origin HTTP request
    String.prototype.charCodeAt()
    event.preventDefault(); Please enter your name using lowercase letters only.
    type属性对jq-post在ie、chrome、ff的兼容
    鼠标随动悬浮框实现思路
    ThinkPHP 3.1.2 模板中的基本语法<1>
    ThinkPHP 3.1.2 模板中的基本语法<1>
    ThinkPHP 3.1.2 模板中的变量
    ThinkPHP 3.1.2 模板中的变量
  • 原文地址:https://www.cnblogs.com/charlottepl/p/12545594.html
Copyright © 2011-2022 走看看