HandlerThread、Handler 、Runnable

本文介绍了如何使用HandlerThread和Handler进行后台任务处理,并保持UI线程的流畅运行。通过创建HandlerThread并启动它,可以执行长时间运行的任务而不阻塞主线程。此外,还详细解释了如何通过Handler发送消息到主线程以更新UI。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建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线程中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值