Androidオープンスレッドのエラー
846 ワード
androidを習ったばかりの人を発見しました.私と同じように、androidのスレッドには一定の誤解があります.
Androidで新しいスレッドを開くと、次の方法が使用されます.
しかし、これは新しいスレッドを開くのではなく、現在のタスクをプライマリスレッドに追加するだけです.新しいスレッドを開く場合は、次のようにHandlerThreadを使用します.
これをより多く使用する場合は、新しいスレッドでタスクを実行するオブジェクトを取得するための静的メソッドをカプセル化できます.
Androidで新しいスレッドを開くと、次の方法が使用されます.
new Handler().post(r);
しかし、これは新しいスレッドを開くのではなく、現在のタスクをプライマリスレッドに追加するだけです.新しいスレッドを開く場合は、次のようにHandlerThreadを使用します.
HandlerThread thread = new HandlerThread(name);
thread.start();
new Handler(thread.getLooper()).post(r);
これをより多く使用する場合は、新しいスレッドでタスクを実行するオブジェクトを取得するための静的メソッドをカプセル化できます.
/**
* Handler 。
*
* @param name
* 。
* @return Handler 。
*/
public static Handler getNewHandlerInOtherThread(String name) {
HandlerThread thread = new HandlerThread(name);
thread.start();
return new Handler(thread.getLooper());
}