UIスレッドで実行したい処理をキューで管理したい場合は、下記のコードで
Handler
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
// UIスレッド(スレッド名は[main])で実行される
}
});
}
UIスレッド以外で実行した処理をキューで管理したい場合は、以下のコードで
HandlerThread
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HandlerThread handlerThread = new HandlerThread("other");
handlerThread.start();
// HandlerThreadを予めstart()させておかないとgetLooper()でnullが返却される
Handler handler = new Handler(handlerThread.getLooper());
handler.post(new Runnable() {
@Override
public void run() {
// ワーカスレッド(スレッド名は[other])で実行される
}
});
}