Android Service的生命周期

Service 有三种使用方式

  • 开启式服务:使用 startService() 启动服务,只是在后台进行一些运算服务,不绑定进行交互
      当使用启动式服务时,调用 startService() 方法开启服务,相应的服务就会启动,并回调 onStartCommand() 方法。这时服务一直处于运行状态,直到 stopService() 方法被调用,服务结束,onDestroy() 也会被调用。需要注意的是,虽然调用一次 startService() 方法,onStartCommand() 方法就会执行一次,但是只会创建一个 Service 实例,也就是说只需要调用一次 stopService() 服务就会停止。
  • 绑定式服务:使用 bindService() 绑定服务

      当使用绑定式服务时,调用 bindService() 来获取一个服务的持久连接,这时会回调 onBind() 方法,调用方可以获取到 onBind() 方法内返回的 IBinder 对象的实例,与服务自由通信。这时服务会一直处于运行状态,直到调用 onUnbind() 方法,或者调用方生命周期结束,这时服务会停止,并且调用 onDestroy() 方法。

  • 同时使用开启式服务和绑定式服务

      如果在使用服务时,既调用了 startService(),又调用了 bindService() ,这是想要销毁服务,就只有同时调用 stopService() 和 onUnbind() (或者调用方生命周期结束)才能够销毁服务。


下面是生命周期流程图

猜你喜欢

转载自blog.csdn.net/young_time/article/details/80253260
今日推荐