メインUIスレッドでハンドラがインスタンス化されている場合、Runnableを持つポストはメッセージキューに追加される子スレッドを作成するのですか、UIスレッドで実行されるだけですか?handler.post(runnable)は新しいスレッドを開始しますか?
handler.post(new Runnable(){
public void run() {
// do stuff
}
});
メインUIスレッドでハンドラがインスタンス化されている場合、Runnableを持つポストはメッセージキューに追加される子スレッドを作成するのですか、UIスレッドで実行されるだけですか?handler.post(runnable)は新しいスレッドを開始しますか?
handler.post(new Runnable(){
public void run() {
// do stuff
}
});
いいえ、新しいスレッドは作成されません。それは単にあなたのハンドラが接続されているスレッド上で、あなたの実行可能を実行し、この場合には、あなたのUIスレッド
handler.post(new Runnable()){
public void run(){
//do something
}
});
を意味し、これはそれが新しいthread.itを作成することを保証するものではないだけで、スレッドの実行可能なを呼び出しますハンドラが(UIスレッドここに)添付されます。
ハンドラは新しいスレッドを作成せず、作成されたスレッド(この場合はメインスレッド)または構築中に与えられたルーパにバインドします。
ありがとうWaqas。 – xil3