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();
}
}