美文网首页Android面试
面试:启动service的两种方法

面试:启动service的两种方法

作者: 天涯的尽头s风沙 | 来源:发表于2019-07-10 17:11 被阅读0次

一、startService(Intent service);

启动service:startService(Intent service)时调用的方法:

  • public void onCreate()
  • public int onStartCommand(Intent intent, int flags, int startId)

终止service:stopService(Intent service)时调用的方法:

  • public void onDestroy()

若没有调用stopService()。Service会一直在后台运行,下次调用者仍可以stopService
多次调用startService,Service只能被创建一次,即onCreate()方法只被调用一次,但是每次都会调用onStartCommand()。

二、bindService(intent,connection, Context.BIND_AUTO_CREATE);

启动service:bindService时调用的方法(调用者和Service绑定在一起):

  • public void onCreate()
  • public IBinder onBind(Intent intent)

多次调用bindService()方法时onBind()只执行最初的一次

终止service(两种情况):

unBindService(ServiceConnect conn)时调用的方法:
调用者的Context不存在(如Activity被finish),多个绑定时为所有的Context都不存在:

  • public boolean onUnbind(Intent intent)
  • public void onDestroy()

只有第一次执行bindService()时onCreate()和onBind()方法才会被调用,多次执行bindService()时不会被多次调用

相关文章

网友评论

    本文标题:面试:启动service的两种方法

    本文链接:https://www.haomeiwen.com/subject/zwzhkctx.html