请问有人能解释一下Android中的消息队列是什么吗?它是正在运行的进程列表吗?我找不到一个好的解释。
我之所以问这个问题,是因为我在阅读View类的post方法。
添加于API级别1 boolean post(Runnable action)
使该Runnable被添加到消息队列。该runnable将在用户界面线程上运行。
提前谢谢。
请问有人能解释一下Android中的消息队列是什么吗?它是正在运行的进程列表吗?我找不到一个好的解释。
我之所以问这个问题,是因为我在阅读View类的post方法。
添加于API级别1 boolean post(Runnable action)
使该Runnable被添加到消息队列。该runnable将在用户界面线程上运行。
提前谢谢。
MessageQueue
是任务列表(消息、可运行对象),将在特定线程中执行。Android系统有一个非常知名的主线程(UI线程)。你刚刚看到的方法只是将可运行对象添加到要在UI线程中执行的进程列表中。除了Looper和Handler之外,MessageQueues也是Android线程构建块的一部分,它们几乎在系统中的任何地方都被使用。要理解MessageQueue,你需要了解Android应用程序的执行模型;
就像JavaScript、iOS中的Cocoa一样,为了避免并发访问竞争,许多与应用程序相关的框架采用了单线程模型。
这意味着有一个主线程,你把需要完成的工作放入专门为该线程提供的队列(MessageQueue)中,有一个工作者(Looper)会从队列中检索你的工作,并逐个运行它们;
这种模型避免了应用程序中的并发冲突;
当你需要做长时间的工作时,你应该将工作放入主线程队列中,当需要在消息中执行你的工作时,你可以创建一个新线程来执行这个长时间的工作,工作完成后,你可以从新线程向主线程消息队列中放入一个新消息;