记安卓中倒计时代码

时间:2022-03-21 22:08:52

以30分钟为例写的一个倒计时:

直接上代码

public class MainActivity extends AppCompatActivity {

private int minute = 30;//这是分钟
private int second = 0;//这是分钟后面的秒数。这里是以30分钟为例的,所以,minute是30,second是0
private TextView timeView;
private Timer timer;
private TimerTask timerTask;
//这是接收回来处理的消息
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (minute == 0) {
if (second == 0) {
timeView.setText("Time out !");
if (timer != null) {
timer.cancel();
timer = null;
}
if (timerTask != null) {
timerTask = null;
}
} else {
second--;
if (second >= 10) {
timeView.setText("0" + minute + ":" + second);
} else {
timeView.setText("0" + minute + ":0" + second);
}
}
} else {
if (second == 0) {
second = 59;
minute--;
if (minute >= 10) {
timeView.setText(minute + ":" + second);
} else {
timeView.setText("0" + minute + ":" + second);
}
} else {
second--;
if (second >= 10) {
if (minute >= 10) {
timeView.setText(minute + ":" + second);
} else {
timeView.setText("0" + minute + ":" + second);
}
} else {
if (minute >= 10) {
timeView.setText(minute + ":0" + second);
} else {
timeView.setText("0" + minute + ":0" + second);
}
}
}
}
}

};


@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timeView = (TextView) findViewById(R.id.tv);

timeView.setText(minute + ":" + second);

timerTask = new TimerTask() {

@Override
public void run() {
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);
}
};

timer = new Timer();
timer.schedule(timerTask, 0, 1000);

}

@Override
protected void onDestroy() {
if (timer != null) {
timer.cancel();
timer = null;
}
if (timerTask != null) {
timerTask = null;
}
minute = -1;
second = -1;
super.onDestroy();
}

@Override
protected void onStart() {
super.onStart();
}

@Override
protected void onStop() {
super.onStop();
}

@Override
protected void onResume() {
super.onResume();
}

@Override
protected void onRestart() {
super.onRestart();
}

@Override
protected void onPause() {
super.onPause();
}
}


ok,这就完成了