android倒计时显示时间,android – 如何使倒计时器在所有活动中显示相同的时间...

在所有活动/片段中使用CounterClass的单​​个实例

使用静态方法初始化getInstance并检索值getFormatedTime().

public class CounterClass extends CountDownTimer{

private static String hms;

private static CounterClass instance;

private CounterClass(long millisInFuture, long countDownInterval){

super(millisInFuture,countDownInterval);

}

public static CounterClass initInstance(long millisInFuture, long countDownInterval){

if(instance==null){

instance = new CounterClass(millisInFuture,countDownInterval);

}

return instance;

}

public static CounterClass getInstance() throws Exception{

if(instance==null){

throw new Exception("Parameters not initialized. Initiate with initInstance");

}else{

return instance;

}

}

public static String getFormatedTime(){

return hms;

}

@Override

public void onTick(long l) {

long millis= l;

hms= String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),

TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),

TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))

);

}

@Override

public void onFinish() {

}

}

我修改了代码.

要启动CounterClass,请执行以下操作.

CounterClass counterClass = CounterClass.initInstance(180000, 1000);

counterClass.start();

用于访问先前的值

try {

CounterClass counterClass = CounterClass.getInstance();

Log.i("TAG 222", counterClass.getFormatedTime());

} catch (Exception e) {

e.printStackTrace();

// counter class is not initiated , access initInstance

}

由于android.os.CountDownTimer没有默认构造函数,因此这是我们实现您的要求的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值