怎么在Android中利用CountDownTimer类实现一个倒计时闹钟
怎么在Android中利用CountDownTimer类实现一个倒计时闹钟?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

专注于为中小企业提供成都网站设计、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业惠水免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
MainActivity:
package com.home.brewclock;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private Button addTimeBtn;
private Button decreaseTimeBtn;
private Button startBtn;
private Button closeMusicBtn;
private TextView timeText;
private int brewTime = 3;
private CountDownTimer countDownTimer;
private boolean isBrewing = false;
private MediaPlayer alarmMusic;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addTimeBtn = (Button) findViewById(R.id.main_btn_up);
decreaseTimeBtn = (Button) findViewById(R.id.main_btn_down);
startBtn = (Button) findViewById(R.id.main_start);
closeMusicBtn = (Button) findViewById(R.id.main_btn_close_music);
timeText = (TextView) findViewById(R.id.main_tv);
addTimeBtn.setOnClickListener(this);
decreaseTimeBtn.setOnClickListener(this);
startBtn.setOnClickListener(this);
closeMusicBtn.setOnClickListener(this);
setBrewTime(3);
}
/**
* 设置闹钟倒计时初始值
*
* @param minutes
*/
public void setBrewTime(int minutes) {
if (isBrewing)
return;
brewTime = minutes;
if (brewTime < 1) {
brewTime = 1;
}
timeText.setText(String.valueOf(brewTime) + "m");
}
/**
* 开启闹钟
*/
public void startBrew() {
// 创建一个CountDownTimer对象记录闹钟时间
countDownTimer = new CountDownTimer(brewTime * 60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeText.setText(String.valueOf(millisUntilFinished / 1000)
+ "s");
}
@Override
public void onFinish() {
isBrewing = false;
timeText.setText(brewTime + "m");
startBtn.setText("Start");
// 加载指定音乐,并为之创建MediaPlayer对象
alarmMusic = MediaPlayer.create(MainActivity.this, R.raw.music);
// 设置为循环播放
alarmMusic.setLooping(true);
// 播放音乐
alarmMusic.start();
closeMusicBtn.setVisibility(0);
}
};
countDownTimer.start();
startBtn.setText("Stop");
isBrewing = true;
}
/**
* 停止计时
*/
public void stopBrew() {
if (countDownTimer != null) {
countDownTimer.cancel();
}
isBrewing = false;
startBtn.setText("Start");
}
@Override
public void onClick(View v) {
if (v == addTimeBtn) {
setBrewTime(brewTime + 1);
} else if (v == decreaseTimeBtn) {
setBrewTime(brewTime - 1);
} else if (v == startBtn) {
if (isBrewing) {
stopBrew();
} else {
startBrew();
}
} else if (v == closeMusicBtn) {
if (alarmMusic != null) {
alarmMusic.stop();
closeMusicBtn.setVisibility(8);
}
}
}
}布局文件:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
分享标题:怎么在Android中利用CountDownTimer类实现一个倒计时闹钟
文章路径:http://www.jxjierui.cn/article/jojgsp.html


咨询
建站咨询
