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