创建HandlerThread
HandlerThread handlerThread = new HandlerThread("myhandlerthread");
handlerThread.start(); 创建后必须要启动
这是一个线程
创建 Handler
Handler handler = new Handler(handlerThread.getLooper());
用thread创建的handler 不在UI线程,可以做费时操作
创建Runnable
Runnable runnable = new Runnable() {
@Override
public void run() {
if (!stopThread) {
while (true) {
goMianThread();
SystemClock.sleep(1000);
}
}
}
};
需要启动线程的地方调用 handler.post(runnable); 启动线程 记住这里不需要调用runnable 的run();方法 切记
stopTHread 只是做一个安全标识
goMainTHread()方法是返回主线程中更新UI
public void goMianThread (){
this.runOnUiThread(new Runnable() {
@Override
public void run() {
seekBar.setProgress(mediaPlayer.getCurrentPosition());
startTextView.setText(formatSeconds(mediaPlayer.getCurrentPosition() / 1000));
}
});
}
返回到UI线程中