在我的应用程序用户中,从日期和时间选择器(从过去的日期)中选择一个日期和时间,然后我想从该日期启动一个递增计时器,因此我需要在服务中运行它,以便在我的应用程序中被杀死,计时器不会停止。 我已经尝试了Chronometer和stackOverFlow上的一些类似解决方案,但是没有得到任何正确的解决方案。
请检查以下图片,它与我需要的内容非常相似:
答案 0 :(得分:1)
要获取日期差(此处date2
可以是用户指定的日期,而date1
可以是当前日期时间(可以通过调用:new Date()
获得)) :
public static String getDifferenceBetweenDates(Date date1, Date date2) {
long secondsInMilli = 1000;
long minutesInMilli = secondsInMilli * 60;
long hoursInMilli = minutesInMilli * 60;
long daysInMilli = hoursInMilli * 24;
long difference = date2.getTime() - date1.getTime();
long elapsedDays = difference / daysInMilli;
difference = difference % daysInMilli;
long elapsedHours = difference / hoursInMilli;
difference = difference % hoursInMilli;
long elapsedMinutes = difference / minutesInMilli;
difference = difference % minutesInMilli;
long elapsedSeconds = difference / secondsInMilli;
return String.format("%s days %s hours %s minutes %s seconds", elapsedDays, elapsedHours, elapsedMinutes, elapsedSeconds);
}
现在,一旦获得差价,您就可以将this用作递增计时器,并定义 onTick(),以每mCountUpInterval
个时间间隔(在CountUpTimer类)