一个简单的handler的进程停止问题,望高手帮帮小弟···
进度条默认的最大值为100,当i为100 时 然后调用handler.removeCallbacks(run);这个方法来停止这个进程,但是在run方法中写入System.out.println("BarProgress---->"+bar.getProgress());发现这个进程并没有停止还是在继续运行,任然在输出BarProgress---->100,这是为什么啊?
代码在下面···
package com.www;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;public class HandlerBarActivity extends Activity { /** Called when the activity is first created. */ ProgressBar bar =null; Button btn = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn = (Button) findViewById(R.id.myBtn); bar = (ProgressBar) findViewById(R.id.progressBar); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub handler.post(run); } }); } Handler handler = new Handler(){ public void handleMessage(Message mes){ bar.setProgress(mes.arg1); handler.post(run); } }; Runnable run = new Runnable(){ int i=0; @Override public void run() { // TODO Auto-generated method stub System.out.println("BarProgress---->"+bar.getProgress()); i=i+10; Message msg = handler.obtainMessage(); msg.arg1=i; try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } handler.sendMessage(msg); if(100==i){ handler.removeCallbacks(run); } } };}