【问题标题】:Android UI Thread Rendering Worker ThreadAndroid UI 线程渲染工作线程
【发布时间】:2015-01-01 15:25:55
【问题描述】:

Android 使用 MessageQueue(管道线程模式)来处理 UI 事件(例如按钮单击、鼠标移动、方向更改、 屏幕重绘等)。这允许您更改按钮标题 不必担心用户会点击 同一时刻。

但是当我们将 Message 发布到工作线程 MessageQueue (which is different with UI Thread MessageQueue)

渲染是如何发生的?

我的意思是说我们只能在 UI 线程上执行渲染,那么它是如何实现的 工作线程也可以。

如果我错了,请纠正我......

【问题讨论】:

    标签: android rendering ui-thread worker-thread


    【解决方案1】:

    据我了解。

    我们不能直接从工作线程更新 UI。但是,我们可以按照 android 文档中建议的一系列步骤从工作线程更新 UI 的内容。

    1. 创建一个与主线程关联的Handler对象
    2. 在适当的时候从工作线程向主线程发布Runnable

    这个 Runnable 将在主线程上被调用。这个机制是用Looper and Handler classes.实现的

    请随意添加答案。

    【讨论】:

    • .@Prem 我们也可以创建一个可以与工作线程关联的 Handler。在这种情况下,消息(可运行)将在工作线程上执行
    • 如果您这样做,那么您正在从非 UI 线程访问 UI。这在某些情况下可能有效,但明确不允许。
    • @GreyBeardedGeek 我非常同意你的看法……谢谢!
    猜你喜欢
    • 2012-11-24
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    相关资源
    最近更新 更多