如何将我的应用程序的时间与设备时间同步

时间:2017-07-12 17:26:32

标签: android

我正在制作警报应用程序。所以我想知道将设备时间与应用程序时间同步的代码。代码用于同步时间是什么?

2 个答案:

答案 0 :(得分:0)

CountDownTimer newtimer = new CountDownTimer(1000000000, 1000) { 

        public void onTick(long millisUntilFinished) {
            Calendar c = Calendar.getInstance();
            String currentTime = c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
        }
        public void onFinish() {

        }
    };
    newtimer.start();

使用上面的代码,您将每秒从系统获取当前时间。将此代码放入服务中并在您的应用中使用此时间。

答案 1 :(得分:0)

如果您正在制作闹钟应用,Android会为此提供系统服务; AlarmManager。关于如何使用该类,还有一个tutorial

直接从教程中,您可以获得AlarmManager的单例实例,如下所示。

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

本教程还使用旧的Calendar类来设置警报的日期和时间,但我建议使用较新的java.time类,因为它们更容易使用。这些类为available on Android O(API级别26),或作为具有ThreeTenABP库的旧版本的后端口。

ZonedDateTime dateTime = ZonedDateTime.of(year, month, dayOfMonth, hour, minute, 0 , 0, ZoneId.systemDefault());
alarmManager.setExact(AlarmManager.RTC_WAKEUP, dateTime.toEpochSecond(), pendingIntent);

但是,如果您只想获得当前系统时间,可以使用以下方法java.time

ZonedDateTime current = ZonedDateTime.now();

或者使用以下方法。

Long current = System.currentTimeMillis();