そこでまず、別のスレッドからUIを更新する方法を見つけました。私は他の何かのためにAsyncTaskとHandlerクラスを使用しています
しかし、そもそも私はそれを間違えました。そして今、私は本当に何が悪かったのかを知りたいのです。
したがって、私の最初の試みはMyListener
、methodeupdateUI()
を使用してJavaインターフェースを作成し、メインアクティビティにそのリスナーインターフェースを実装させることでした。httpリクエストを処理するスレッドにリスナーとしてメインアクティビティを登録したより。そのスレッドからMyListener.updateUI()
、リクエストが行われた後に呼び出しました。updateUI()
一部のテキストビューをリクエストの結果で更新します。
これはAndroidでは機能しません。そして、私はそれを期待していませんでした。そして、その理由はわかりません。例外は、UIスレッドからこれらの更新を行う必要があることを教えてくれました。
リスナーインターフェイスから実装されているメインアクティビティでupdateUI()
呼び出したときに、UIスレッドで実行されない理由がわかりません。MyListener.updateUI()
updateUI()
この振る舞いについて説明してもらえますか?