我想在我的应用程序中添加一个新的未来,它在textView中显示由我设置的特定日期,日期以及每天通过后要更改的textView。我尝试了很多东西,不止一次,但到目前为止还没有。
我从这里开始:
CountDownTimer countDown = new CountDownTimer(3000,1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
};
countDown.start();
非常感谢!!!
答案 0 :(得分:1)
好吧,我很久以前为一个小部件做过类似的事情,所以请查看下面的代码,如果有什么不清楚的地方让我知道。它可能不是100%“正确”,因为它是在我开始编写Android代码时,但它应该给你一个想法......
private static final long MILLIS_IN_DAY = 24 * 60 * 60 * 1000;
private static final long MILLIS_IN_HOUR = 60 * 60 * 1000;
// ...
Time awaitedTime = new Time();
awaitedTime.set(second, minute, hour, day, month, year);
Time defaultTime = new Time();
defaultTime.set(0, 0, 0, 1, 7, 1989);
if (awaitedTime.toMillis(false) == defaultTime.toMillis(false)) {
return "No date";
}
else {
int tempRest = 0;
Time currentTime = new Time();
currentTime.setToNow();
long remainingTime = awaitedTime.toMillis(false) - currentTime.toMillis(false);
int remainingDays = (int) (remainingTime / MILLIS_IN_DAY);
tempRest = (int) (remainingTime % MILLIS_IN_DAY);
int remainingHours = (int) (tempRest / MILLIS_IN_HOUR);
// return YOUR STRING HERE
}
答案 1 :(得分:0)
我只是不知道如何显示天数,我只能显示 直到倒计时必须计算。有问题,如何 显示天数?
我建议您使用JodaTime。
Days.daysBetween(new LocalDate(start), new LocalDate(end)).getDays()
关于更新:
Wy,你不要只是更新onResume()中的剩余天数。当用户午夜使用你时,你真的想要覆盖这种情况吗?:)
如果是这种情况,您可以使用AlarmManager。这是草稿:
AlarmManager manager = Context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, UpdateDaysReceiver.class);
PendingIntent pi=PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
manager.setRepeating (int type, long triggerAtMillis, 24*60*60*1000, pi)
您可以在UpdateDaysReceiver中处理更新。