首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntentService和Handler+Looper

IntentService和Handler+Looper
EN

Stack Overflow用户
提问于 2013-09-08 04:30:06
回答 2查看 1.4K关注 0票数 0

IntentService是Handler+Looper实现吗?

唯一的区别是IntentService是由意图触发的

IntentService http://developer.android.com/reference/android/app/IntentService.html

处理程序+循环程序http://developer.android.com/reference/android/os/Looper.html

EN

回答 2

Stack Overflow用户

发布于 2020-02-28 13:54:51

循环是对事件循环(无限循环,通过事件排出队列)的抽象,处理程序是将事件放入/从具有事件的队列中移除(由循环排出),并在这些事件被处理时处理这些事件的抽象。

Looper是一个为某些线程运行消息循环的类。在Java中,我们有线程,在线程中我们可以做一些有用的工作。最初线程没有事件循环功能,但我们可以通过将循环附加到线程来添加此功能。

循环有两个主要的方法:准备和循环。第一种方法准备初始化线程,并将循环附加到线程上。第二个方法循环启动事件循环。

Handler是一个允许你从线程的MessageQueue发送和处理消息和Runnables的类。基本上它的工作方式如下:客户端初始化处理程序和循环程序(这样整个基础设施现在就可以使用了)客户端将消息发送到处理程序处理程序将消息发布到循环程序的MessageQueue循环程序在MessageQueue中处理消息当消息准备好处理时,循环程序将其发送回处理程序,后者可以处理消息。因此,我们可以看到Handler做了两件事: 1)发布要放入队列中的消息,2)在循环处理消息时对其进行处理。

参考https://proandroiddev.com/decoding-handler-and-looper-in-android-d4f3f2449513

票数 3
EN

Stack Overflow用户

发布于 2013-09-08 04:36:01

看一下IntentService source code,它确实使用了Handler+Looper作为其内部逻辑。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18677640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档