【问题标题】:Android - Looper.prepare() in a Thread vs Activity.runOnUIThread()Android - 线程中的 Looper.prepare() 与 Activity.runOnUIThread()
【发布时间】:2015-07-14 08:39:45
【问题描述】:

我的问题很简单,但我找不到令人满意的答案。问题是:如果我在Runnable 的开头调用Looper.prepare(),我的线程是否在 UI 线程上运行?

我知道Looper 用于MessageQueue 并在线程之间交换数据,但它是否使代码在 UI 线程上运行?

下面的代码会解释:

@Override
public void onReceive(final Context context, Intent intent) {
if(intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {

        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                Looper.prepare();
                // ... some code ... //
                Looper.loop();
            }
        };

        Thread thread = new Thread(runnable);
        thread.start();
    }
}

【问题讨论】:

    标签: android multithreading android-looper android-runonuithread


    【解决方案1】:

    不,它不会让您的线程在 UI 线程上运行。欲了解更多信息,请参阅:Communicating with the UI Thread

    【讨论】:

    • 谢谢,我需要知道的一切。上帝保佑你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2016-09-05
    • 1970-01-01
    • 2012-02-24
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多