• startService()后,即使调用startService()的进程结束了,Service 仍然还存在,直到有进程调用stoptService(),或者Service 自己自杀stopSelf()了.
  • bindService()后,Service 就和调用bindService()的进程同生共死,当然期间可以调用unbindService()让Service 结束.
  • 两种方式混合使用时,比如说你startService()了,我bindService()了,那么只有你stopService()了而且我也unbindService()了,这个Service 才会被结束。

2011年6月15日补充:

【0】与采用Context.startService()方法启动服务有关的生命周期方法

onCreate() ->onStart() ->onDestroy()

  • onCreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()bindService()方法,服务也只被创建一次。
  • onStart() 只有采用Context.startService()方法启动服务时才会回调该方法。该方法在服务开始运行时被调用。多次调用startService()方法尽管不会多次创建服务,但onStart() 方法会被多次调用。
  • onDestroy()该方法在服务被终止时调用。
【1】与采用Context.bindService()方法启动服务有关的生命周期方法

onCreate() ->onBind() ->onUnbind()->onDestroy()

  • onBind()只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用Context.bindService()方法并不会导致该方法被多次调用。
  • onUnbind()只有采用Context.bindService()方法启动服务时才会回调该方法。该方法在调用者与服务解除绑定时被调用。
  • 如果先采用startService()方法启动服务,然后调用bindService()方法绑定到服务,再调用unbindService()方法解除绑定,最后调用bindService()方法再次绑定到服务,触发的生命周期方法如下:
  • onCreate() ->onStart() ->onBind() ->onUnbind()[重载后的方法需返回true] ->onRebind()

更多相关文章

  1. contentProvider操作
  2. AndroidStudio3.0及其以上集成ButterKnife时候的Android(安卓)Gr
  3. Android(安卓)Studio去除标题栏
  4. 在Android中访问WebService接口
  5. android AudioTrack 播放 正弦波 方波
  6. Android(安卓)程序退出的办法
  7. Android(安卓)自定义View需要重写ondraw()等方法
  8. Android编程风格
  9. android json数据传递时编码格式的转换

随机推荐

  1. 【Android】常用控件及布局
  2. 禁止Android 的锁屏功能. Disable Lock S
  3. Android 延迟发送消息的用法
  4. Android网络状态检测
  5. Android SD 卡文件浏览器
  6. Android简易实战教程--第九话《短信备份~
  7. android使用Animation的两种方式
  8. android实战教程(一)
  9. Android实现读写JSON数据的方法
  10. Android 删除module