我想制作一个计时器,它将显示在我的应用程序的每个活动中。
我知道如何在活动上设置计时器,下面是我的代码
public class Timer extends Activity implements OnClickListener {
public TextView mTextField;
private Button btnstart;
public String formatTime(long millis) {
String output = "00:00";
long seconds = millis / 1000;
long minutes = seconds / 60;
seconds = seconds % 60;
minutes = minutes % 60;
String secondsD = String.valueOf(seconds);
String minutesD = String.valueOf(minutes);
if (seconds < 10)
secondsD = "0" + seconds;
if (minutes < 10)
minutesD = "0" + minutes;
output = minutesD + " : " + secondsD;
return output;
}
public CountDownTimer Counter1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Declare Start/Stop button
btnstart = (Button)findViewById(R.id.btnThread1);
btnstart.setOnClickListener(this);
//Button btnstop = (Button)findViewById(R.id.button02);
//Button btnpass = (Button)findViewById(R.id.button03);
//Declare Text fields to show time left
final TextView mCounter1TextField=(TextView)findViewById(R.id.txtThread1);
final TextView mCounter2TextField = (TextView)findViewById(R.id.txtThread2);
//final TextView mCounter3TextField=(TextView)findViewById(R.id.textView03);
//Counter 1
Counter1 = new CountDownTimer(120000 , 1000) {
public void onTick(long millisUntilFinished) {
mCounter1TextField.setText("Seconds left: " + formatTime(millisUntilFinished));
}
public void onFinish() {
mCounter1TextField.setText("Finished!");
// Counter1.start();
}
};
}
@Override
public void onClick(View v) {
if(v == btnstart)
{
Counter1.start();
}
}
}
我想知道如何使其全球化?
你可以有一个单例类来保存你的CountDownTimer
// This is not a real singleton, Google to get a proper Java implementation
public class TimerSingleton {
// Should not be public, you should of course encapsulate access to that timer.
// static keyword says that one timer object is shared by all instance of TimerSingleton
public static CountDownTimer timer = new CountDownTimer();
}
// Access to the timer from an activity:
TimerSingleton.timer.start();
第二个选项是将计时器作为自定义应用程序类的成员:使用 Application 类作为全局变量
第三个选项:创建一个本地服务,在启动时启动计时器。
请记住,在选项 1 和 2 的情况下,如果操作系统决定终止您的应用程序,计时器将消失(即,当重新创建活动时,CountDownTimer 对象将被重置)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)