美文网首页
Android Service详解

Android Service详解

作者: 钱晓缺 | 来源:发表于2020-10-27 15:42 被阅读0次

    生命周期如下:

    两种启动方式

    第一种方式: startService()

    通过startService启动后,service会一直无限期运行下去,只有外部调用了stopService()或stopSelf()方法时,该Service才会停止运行并销毁。

    当第一次调用的时候,方法顺序是:

    构造方法——oncreate()——onStartCommand()

    当第二次被调用的时候,直接调用onStartCommand()

    结束:stopService():——>onDestory()

    第二种方式:bindService()

    bindService启动的服务和调用者之间是典型的client-server模式。调用者是client,service则是server端。service只有一个,但绑定到service上面的client可以有一个或很多个。这里所提到的client指的是组件,比如某个Activity。

    client可以通过IBinder接口获取Service实例,从而实现在client端直接调用Service中的方法以实现灵活交互,这在通过startService方法启动中是无法实现的。

    bindService启动服务的生命周期与其绑定的client息息相关。client也可以明确调用Context的unbindService()方法与Service解除绑定。当所有的client与service解除绑定的时候,才会调用onUnbind,然后 Service会自行销毁。

    第一次调用:

    构造方法——oncreate()——onBind()——onServiceConnected()

    结束:unbindService():如果当前有Activity与Service相连——>onUnbind()——>onDestory()

    Intentservice

    IntentService 是继承于 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作,启动 IntentService 的方式和启动传统 Service 一样,同时,当任务执行完后,IntentService 会自动停止,而不需要我们去手动控制。

    相关文章

      网友评论

          本文标题:Android Service详解

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