2 つの Android フォン間のソケット接続を実装しました。自作の地図に位置を表示したいので、ローカル電話はいくつかのビュー要素を更新する必要があります。
Android プログラミング ガイドラインは、View 要素を自分のアクティビティの外から変更することを承認していません。つまり、次のようなメソッドを呼び出すことはできません。
mainActivity.updateView(positionX);
ネットワークスレッドで実行するためです。それで、それを行う公式の方法は何ですか?runOnUIThreadがあることは知っていますが、それは一見するとクイックフィックスのように見えます。
または、AsyncTask が必要ですか? しかし、API によると、より長いタスクには実用的ではなく、スレッドを常にバックグラウンドで実行する (そして頻繁に更新を取得する) 必要があります。
新しい Handler/AsyncTask を作成して、MainActivity の別の場所に小さなアイコンを簡単に設定するのは大きなことではありませんか? 結局のところ、おそらく 1 秒あたり 50 回の変更があると思います。
うまくいけば、ここの誰かがこれを行う正しい方法を知っています。ありがとう!
PS では、onDraw メソッドのようなものを上書きするオプションが少なくともある場合は、お尋ねさせてください。結局のところ、常に新しいスレッドを作成するのは少しやり過ぎに思えるので、それは最良のアイデアのように思えます。そこで、「redraw()」メソッドに、ネットワーク スレッドに保存 (同期) した情報を取得するよう伝えたいと思います。したがって、これ以上のスレッドは必要ありません。誰かそれについて何か知っていますか?ありがとうございました!