Android 计时器的简单用法<有BUG,运行一会,会崩溃>
小记:
package com.luobo.xiao.testletter;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends Activity {
private TextView viewTime;
private Button btnStart;
private Timer time = null;
private TimerTask task = null;
private int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
viewTime = (TextView) findViewById(R.id.textView);
btnStart = (Button) findViewById(R.id.btnStart);
btnStart.setOnClickListener(new ClickEvent());
}
class ClickEvent implements View.OnClickListener {
@Override
public void onClick(View v) {
if (v.getId() == R.id.btnStart) {
i = Integer.parseInt("5000");
startTime();
}
}
}
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
viewTime.setText(msg.arg1+"");
startTime();
};
};
public void startTime() {
time = new Timer();
task = new TimerTask() {
@Override
public void run() {
i--;
Message message = mHandler.obtainMessage();
message.arg1 = i;
mHandler.sendMessage(message);
}
};
//time.schedule(task, 1000, 1000);
time.schedule(task, 1);
}
public void stopTime() {
time.cancel();
}
}