java runnable停止_为什么Handler的Runnable里面的run方法没有停止??

本文探讨了使用Android的Handler机制来更新UI中的进度条。通过创建一个Runnable对象并在其run方法中更新进度值,利用Handler的sendMessage方法发送消息来触发UI更新。然而,在实际应用中发现,即使调用了removeCallbacks方法尝试停止线程,进度更新任务仍然持续执行。
摘要由CSDN通过智能技术生成

RunnableupdateThread=newRunnable(){inti=0;publicvoidrun(){System.out.println("BeginThread");i=i+10;//得到一个消息对象,Message类是由Android操作系统提供Messagemsg=updateBa...

Runnable updateThread = new Runnable(){ int i = 0; public void run() { System.out.println("Begin Thread"); i = i + 10; //得到一个消息对象,Message类是由Android操作系统提供 Message msg = updateBarHandler.obtainMessage(); //将msg对象的arg1参数的值设置为i,用arg1和arg2这两个长远变量传递消息,优点是系统性能消耗较小 msg.arg1 = i; try{ Thread.sleep(1000); } catch(InterruptedException e){ e.printStackTrace(); } //(3)执行sendMessage方法将消息压入到消息队列中去,而不等消息被处理,sendMessage马上返回,继续向下执行。 updateBarHandler.sendMessage(msg); if(i == 100){ System.out.println("over100!"); //(7)直到i的值为100时,就将线程对象从handler当中移除。调用removaCallbacks方法把updateThread从handler当中去除掉,这个线程将不再执行,就此停止。 updateBarHandler.removeCallbacks(updateThread); System.out.println("removeCallbacks--->updateThread!"); } } }; 高手帮忙看下上面的代码,其实就是用Handler来实现进度条的进度啦,而在运行的时候,进度条是运行了,但我看到LogCat里面的信息发现,Runnable里面的run方法一直在运行打印"Begin Thread",并没有停下来?想知道为什么我已经调用了removeCallbacks,run方法还是运行,还有什么方法可以调用把它停下来吗??

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值