关于Looper退出问题

来源:3-5 Java 泛型的实现机制是怎样的?

用户1148542

2019-07-16

new Thread(new Runnable() {
@Override
public void run() {
Log.e(“qdx”, "step 0 ");
Looper.prepare();

            Toast.makeText(MainActivity.this, "run on Thread", Toast.LENGTH_SHORT).show();

            Log.e("qdx", "step 1 ");
            Looper.loop();
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Looper.myLooper().quit();
            Log.e("qdx", "step 2 ");
        }
    }).start();
    老师请教下我Looper.myLooper().quit();退出loop循环, Log.e("qdx", "step 2 ");这段log没打出来
写回答

2回答

用户1148542

提问者

2019-07-16

如何让looper退出呢

0
3
用户1148542
我在别的线程中调用 Looper.myLooper().quit(); 退出的直接是主线程 app退出了
2019-07-16
共3条回复

bennyhuo

2019-07-16

因为loop函数是阻塞的,里面是个死循环,因此根本不会往下执行的。

0
0

大厂资深面试官 带你破解Android高级面试

改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程

1636 学习 · 222 问题

查看课程