我正在制作警报应用程序。所以我想知道将设备时间与应用程序时间同步的代码。代码用于同步时间是什么?
答案 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();