美文网首页
2018-12-06 IntentService的学习使用

2018-12-06 IntentService的学习使用

作者: 减肥什么的不存在的 | 来源:发表于2018-12-07 10:18 被阅读0次

    IntentService是Service的子类,可根据需要异步处理请求。客户端通过Context.startSerivce(Intent)呼叫请求,服务根据需要自动启动,结束后自动关闭。

    IntentService有自己的线程(子线程),即不在主线程上处理每个intent,当工作失败时,会自行停止。

    所有的请求都会在一个工作线程处理,即使他们可能需要很长时间,但是一次只能处理一个请求,即多次调用startService时,会多次请求,这些请求会进入IntentService线程的队列中,该队列的所有请求都是同步进行的,即一个一个来,一次只能处理一个请求,弄完了在下一个。

    由于onStartCommand方法是在主线程完成的,而IntentService是在自己的线程,非主线程工作,所以IntentService不能在onStartCommand里面写方法。

    特点

    IntentService自带线程,当我们用service做耗时操作,比如网络请求时,可以使用这个。

    使用IntentService时,我们的工作内容要放在onHandleIntent里面,当我们调用startService(intent)启动了IntentService之后,最终Android Framework会回调其onHandleIntent方法,并将intent传入该方法,这样我们就可以根据intent去做实际工作,并且onHandleIntent运行在IntentService所持有的工作线程中,而非主线程。(本段转载:详解Android中IntentService的使用方法

    多次启动IntentService,产生多个任务,但是onHandleIntent一次只处理一个任务,所有的任务会按顺序一个一个的执行。所有任务执行完时,自动onDestroy。

    相关文章

      网友评论

          本文标题:2018-12-06 IntentService的学习使用

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