美文网首页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