android - 如何从特定日期开始计时?

标签 android chronometer android-timer

在我的应用程序中,用户从日期和时间选择器(从过去的日期)中选择一个日期和时间,然后我想从该日期开始计时,我需要在服务中运行它,这样如果我的应用程序被杀,计时器不会停止。 我在 stackOverFlow 上尝试了 Chronometer 和一些类似的解决方案,但没有得到任何正确的解决方案。

请检查下图,它与我需要的非常相似:

https://ibb.co/rFz24kg

最佳答案

获取日期的差异(此处,date2 可以是用户选择的日期,date1 可以是当前日期时间(您可以通过调用获得:新日期())):

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 类中定义)

更新您的 View

关于android - 如何从特定日期开始计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810183/

相关文章:

java - 在定义的时间段后关闭 Activity

android - 是否可以将一个 Android 应用程序隐藏在另一个应用程序中?

java - 用特定时间JAVA初始化计时器

Android Listview 图片大小

swift - 如何在 View Controller 中使用 UILabel 中显示的计时器生成的数字作为整数?

Android Chronometer 无法启动

android - 单击按钮后如何查看持续时间

java - Android Camera.takePicture 失败

android - 如何从 Activity 返回主屏幕