3

Android では、メイン スレッド &HandlerThreadにはデフォルトで Looper & MessageQueue があります。handlerThread オブジェクトで getLooper() を呼び出すことはできますが、なぜ main Thread でできないのでしょうか?

HandlerThread ht = new HandlerThread();
Looper htLooper = ht.getLooper();      // Works fine

Thread mainThread = Looper.getMainLooper().getThread();
Looper mainLooper = mainThread.getLooper();    // getLooper() doesn't compile.

実際のシナリオでは、 mainThread でgetLooper()を使用する必要はありません。を呼び出すだけLooper.getMainLooper()です。なぜそれが機能しないのか知りたいだけです。

Looper.getMainLooper().getThread()を返すJavaの観点から理解していますが、 Thread クラスにはgetLooper()メソッドjava.lang.Threadがありません。しかし、Androidのメインスレッドはそうです。メインスレッドに としてアクセスできますか?HandlerThread

4

1 に答える 1