当前位置: 代码迷 >> Android >> android一个小疑点
  详细解决方案

android一个小疑点

热度:78   发布时间:2016-05-01 18:01:08.0
android一个小问题
package com.android;
为什么点击StopBu不能里那个updateBarhandler.removeCallbacks(updateThread);停止ProgressBar不起作用,而if语句里却能起作用,一直很纠结,谁能帮我看看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 {

private ProgressBar myProgressBar = null;
private Button startBu = null;
private Button stopBu = null;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
   
  myProgressBar = (ProgressBar)findViewById(R.id.myProgressBar);
   
  startBu = (Button)findViewById(R.id.startBu);
  stopBu = (Button)findViewById(R.id.stopBu);
   
  stopBu.setOnClickListener(new OnClickListener() {//

@Override
public void onClick(View v) {

System.out.println("stop");
updateBarhandler.removeCallbacks(updateThread);/////////这个函数不其作用


}
});
   
   
  startBu.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

System.out.println("start");
myProgressBar.setVisibility(View.VISIBLE);
updateBarhandler.post(updateThread);


}
});
  }
   
  Handler updateBarhandler = new Handler(){

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
myProgressBar.setProgress(msg.arg1);
updateBarhandler.post(updateThread);

}
 
  };
  
   
  Runnable updateThread = new Runnable() {

  int i = 0;
@Override
public void run() {

i = i + 10;
Message msg = updateBarhandler.obtainMessage();
msg.arg1 = i;

try {

Thread.sleep(1000);
System.out.println("run");
} catch (Exception e) {

e.printStackTrace();
}

updateBarhandler.sendMessage(msg);
if(i == 20){
System.out.println("stopThread");
updateBarhandler.removeCallbacks(updateThread);//这个函数却能起作用
}

}
};
}

------解决方案--------------------
要不把工程删掉重新弄一边
  相关解决方案