• android service生命周期


    tyle="margin:20px 0px 0px; font-size:14px; line-height:26px; font-family:Arial; color:rgb(51,51,51)">

    2、bindService及unBindService方法可多次调用,在调用unBindService方法前连续调bindService对应的onBind()只会调用一次,连续多次调用unBindService对应的onUnbind方法只会调用一次
    3、第一次调用startService-->bindeService-->unBindService对应的调service方法为onCreate()->onBind()->onServiceConnected()->onStart()(其中startService与bindeService的顺序没有关系,onStart在onBind()前还是后可能是受service 的onCreate()方法执行时间影响)
    4、在Service stop前不论是在当前activity还是其他对象中继续调用startService-->bindeService-->unBindService这些方法对应的调service方法为onStart()->onServiceConnected()(在同一对象如果调过bindService后在调用unBindService前重复调bindService,则onServiceConnected()方法不会重复调用),不会再调用onBind()方法和onUnbind()方法。

    5、在service的生命周期中onBind()方法和onUnbind()只会被调用一次即使在不同对象调了多次bindeService和unBindService。
    6、如果在activity1中startService,在activity2中onBindServie,则在activity2调unBindService前在activity1中调stopService则不能立即调service的onDestroy,只有在activity2调unBindService后才会调service的onDestroy.如果只在activity1中startService和onBindServie则可在unBindService前调stopService使service的onDestroy被调用。


    总结:startService和bindService及stopService和unBindService都可以多次调用,只是在Service关闭之前重复调用startService方法会重复调service的onStart(),重复调bindeService只会调onServiceConnected()而不会调onBind(),重复调unBindService是不会调onUnbind()方法的。
          stopService只有在所有调过bindServie的对象(调stopService的对象除外,可不用unBindeService)中都调了unBindService以后调才能使service的onDestroy被调用。
          onServiceDisconnected方法在意外连接断开或者系统资源不够的时候调用,或者service stop后,则之前调了几次unBindService则调几次onServiceDisconnected方法

    以上过程全部在2.3中测试得到的结果

  • 相关阅读:
    intel instruction 指令速查
    WinDbg双机调试配置
    MSDN上关于WinDbg的手册
    build temu error about SDL
    taintCheck的实现
    Vim使用taglist功能
    Windows编写driver
    cabal替代脚本
    怎样理解Functor与Monad
    haskell基本语法
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3043326.html
Copyright © 2020-2023  润新知