public class TestActivity extends Activity {
private Button startButton = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
updateBarHandler.post(updateThread);
}
}); }
Handler updateBarHandler = new Handler(){
public void handleMessage(Message msg){
updateBarHandler.post(updateThread);
}
};
Runnable updateThread = new Runnable() {
int i = 0;
public void run() {
i = i + 10;
Message msg = updateBarHandler.obtainMessage();
msg.arg1 = i;
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
updateBarHandler.sendMessage(msg);
Log.i("updateThread", ""+i);
if (i == 100) {
updateBarHandler.removeCallbacks(updateThread);
}
}
};
}
private Button startButton = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
updateBarHandler.post(updateThread);
}
}); }
Handler updateBarHandler = new Handler(){
public void handleMessage(Message msg){
updateBarHandler.post(updateThread);
}
};
Runnable updateThread = new Runnable() {
int i = 0;
public void run() {
i = i + 10;
Message msg = updateBarHandler.obtainMessage();
msg.arg1 = i;
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
updateBarHandler.sendMessage(msg);
Log.i("updateThread", ""+i);
if (i == 100) {
updateBarHandler.removeCallbacks(updateThread);
}
}
};
}
好几次抱这种错,不知怎么回事
updateBarHandler.post(updateThread);再次会到run方法
报错的意思是。模拟器当前运行的程序就是你这个程序
或者小于100才发消息。 Runnable updateThread = new Runnable() {
int i = 0;
public void run() {
i = i + 10;
Message msg = updateBarHandler.obtainMessage();
msg.arg1 = i;
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
Log.i("updateThread", ""+i);
if (i < 100) {
updateBarHandler.sendMessage(msg);
}
}
};
退出模拟器中运行的程序,或project->clean一下。