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方法还是运行,还有什么方法可以调用把它停下来吗??
展开