1,Service 是什么:

        【1】Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。

        【2】Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时的操作,除非你在Service中创建了子线程来完成耗时操作

        【3】Service的运行不依赖于任何用户界面,即使程序被切换到后台或者用户打开另一个应用程序,Service仍然能够保持正常运行,这也正是Service的使用场景。当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行

 

2,服务的生命周期:

【1】生命周期:

【2】Service生命流程图:

  • onCreate():

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

  • onStartCommand():

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

  • onDestroy():

    当服务不再使用且将被销毁时,系统将调用此方法。

  • onBind():

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

  • onUnbind():

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

  • onRebind():

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

【3】生命周期里的方法 :

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

  • 手动调用的方法:

手动调用方法

作用

startService()

启动服务

stopService()

关闭服务

bindService()

绑定服务

unbindService()

解绑服务

  • 自动调用的方法:

自动调用方法

作用

onCreat()

创建服务

onStartCommand()

开始服务

onDestroy()

销毁服务

onBind()

绑定服务

onUnbind()

解绑服务

【4】生命周期调用

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

更多相关文章

  1. Android每周一轮子:OkHttp(1)
  2. Android生成二维码--拍照或从相册选取图片
  3. J2ME VS Android
  4. Android(安卓)AsyncTask !!!!
  5. Android(安卓)Gallery setSelection()和onFling()方法的区别
  6. android关于获取手机号
  7. 浅析LruCache原理
  8. Android(安卓)JNI 动态注册方法(JNI_OnLoad)
  9. Android网络编程之通过Post传递参数

随机推荐

  1. Android GestureDetector
  2. Android_UI开发专题
  3. Android(安卓)intent and activity 经典
  4. 自定义SeekBarPreference控件(老外出品,直
  5. Android(安卓)- BroadcastReceiver
  6. Android学习笔记---第二天---基础UI组件-
  7. Android Support Library
  8. Android 操作SQLite数据库(初步)-在程序中
  9. Android跨进程通信——Activity
  10. Android BackgroundViewPager:类似桌面背