Androidのpostとsendの違いは何ですか
Androidでは、「post」と「send」はどちらもメッセージを送信するためのメソッドですが、若干の違いがあります。
- ポスト:`post`メソッドは、メインスレッドのメッセージキューにメッセージを投稿してすぐに返します。これは、メッセージがすぐに処理されるのではなく、メインスレッドのメッセージキューで実行されるのを待機することを意味します。通常、`post`メソッドは、UIスレッドでUI要素を更新するために使用され、メインスレッド上で実行されることを保証します。
サンプルコード:
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
// 在主线程中执行的代码
}
});
- send: send メソッドは、子スレッドでメッセージを送信するために使用されます。post メソッドとは異なり、send メソッドはメッセージをメインスレッドのメッセージキューに入れるのではなく、指定されたスレッドに直接送信します。これにより、そのメッセージはメインスレッドの空き時間を待たずにすぐに実行されます。
例文コードを日本語にネイティブに言い換えると?
HandlerThread handlerThread = new HandlerThread("MyHandlerThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.send(new Message());
まとめると、postメソッドはMainThreadで行うタスクに適し、sendメソッドはサブThreadで行うタスクに適しています。postメソッドはMainThreadのメッセージキューにメッセージを入れて、MainThreadが処理するのを待ちます。sendメソッドはサブThreadに直接メッセージを送信するため、処理待ちが発生しません。