java - Handler.postDelayed 对比 Runnable.run。可以调用 .run 而不是 .postDelayed 吗?

标签 java android multithreading runnable android-handler

我试图实现一个循环Runnable。我发现的示例似乎使用以下想法来启动可运行的。

        handler = new Handler();
        final Runnable r = new Runnable() {
            public void run() {
                handler.postDelayed(this, 10000);
                doIt();
                count ++;
            }
        };
        r.run();// what I prefer
//      handler.postDelayed(r, 1000);//their idea

我更喜欢调用 run() 方法来启动 Runnable。如果直接调用 run(),我可能会遇到什么麻烦!

谢谢! :)

最佳答案

如果您调用r.run()Runnable 将立即执行。但是,如果您按照他们的建议调用 handler.postDelayed(r, 1000);,则 Runnable 将不会执行,直到 1s 过去。所以,这是第一点。二、为什么不用Android提供的Thread Loop merchanism,即Handler AsyncTask HandlerThread 是为了 Android 支持的很好?

关于java - Handler.postDelayed 对比 Runnable.run。可以调用 .run 而不是 .postDelayed 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29717280/

相关文章:

java - JCIFS:文件检索速度太慢,无法使用

java - 如何将子类实例分配给实现相同接口(interface)的 Enum 项?

java - Android - ConcurrentModificationException - 在不同的线程中读取和删除

android - opengl中的正方形填满整个显示屏

Swift 线程 : When to use DispatchQueue. main.async?

multithreading - 在线程上运行进程 (JSF 2.2 - WELD 2.3)

java - 签名的 Java Applet 提示打印机访问

java - Android:无效的资源文件

android - 无法解析数组项

android - 提供MDPI和HDPI资源的意义