Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么android将PerformClick作为非新线程运行_Java_Android_Multithreading - Fatal编程技术网

Java 为什么android将PerformClick作为非新线程运行

Java 为什么android将PerformClick作为非新线程运行,java,android,multithreading,Java,Android,Multithreading,在java和android世界中,要运行now线程,我们就这样执行它 Thread tr = new Thread(new Runnable() { @Override public void run() { todo(); } }); tr.start(); 所以tr是新线程,但在android api中,PerformClick实现了可运行接口,通常由execute-run方法调用 private static void handleCallback

在java和android世界中,要运行now线程,我们就这样执行它

Thread tr = new Thread(new Runnable() {
    @Override
    public void run() {
        todo();
    }
});
tr.start();
所以tr是新线程,但在android api中,PerformClick实现了可运行接口,通常由execute-run方法调用

private static void handleCallback(Message message) {
    message.callback.run();
}
回调是PerformClick

private final class PerformClick implements Runnable {
    @Override
    public void run() {
        performClick();
    }
}
我试图理解为什么在这个案例中它不是新的线程


感谢什么是
performClick()
?performClick()它是视图类中的方法,但对于这个问题,performClick类上的run方法体并不重要,android在主线程中执行所有与用户界面相关的执行,因此它不会创建新线程来运行performClick(不过我不确定您的问题是什么)