14
ハンドラが実行可能ファイルを投稿する理由を説明できますか? handleMessageをオーバーライドしてメッセージを送信するのは同じことですか?Android:なぜハンドラは実行可能ファイルを投稿するのですか?
私はこれらの2つの方法がどのように実装されると思うかを示すために、いくつかのテストされていないコードを書いています。私のアプローチで間違っている場合は、私を修正してください。
ポストとのハンドラ:のhandleMessageと
handler.post(new Runnable() {
@Override
public void run() {
imageView.doSomething();
}
});
ハンドラ:
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
imageView.doSomething();
}
};
handler.sendMessage(message);
さて、新しいオブジェクト(実行可能ファイル)を作成するためのパフォーマンスは非常に低いです。しかしそれはごくわずかです。 – eordano
ただし、UIスレッドでコードを実行する場合は、UIスレッドでハンドラを作成するか、または「新しいハンドラ(Looper.getMainLooper())」を使用する必要があります。 "new Handler()"では、現在のスレッドでハンドラを作成しますが、これはメインスレッドである必要はありません。 – Kuno