Так я ж в ThreadHandler хенлеру передаю Looper
private MyWorkerThread mWorkerThread;
private TextView txtView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtView = (TextView) findViewById(R.id.txt_view);
Runnable task = new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
SystemClock.sleep(500);
txtView.setText("" + i);
}
}
};
mWorkerThread = new MyWorkerThread("myWorkerThread");
mWorkerThread.start();
mWorkerThread.prepareHandler();
mWorkerThread.postTask(task);
// mWorkerThread.postTask(task);
// mWorkerThread.postTask(task);
// mWorkerThread.postTask(task);
}
@Override
protected void onDestroy() {
mWorkerThread.quit();
super.onDestroy();
}
}
class MyWorkerThread extends HandlerThread {
private Handler mWorkerHandler;
public MyWorkerThread(String name) {
super(name);
}
public void postTask(Runnable task){
mWorkerHandler.post(task);
}
public void prepareHandler(){
mWorkerHandler = new Handler(getLooper());
}
}
Потому что вьюхи можно трогать только в главном потоке
Почему бы не перейти на RxJava🤔
Обсуждают сегодня