在我的应用程序中,我有一个按钮,用于设置运行 AlarmManager
的确定时间,我需要在一个 TextView
中显示警报还剩多少时间,我该怎么做?
注意:我的应用需要在 API 15 中运行。
启动 AlarmManager
的按钮:
// Alarm manager
Intent intent = new Intent(getActivity().getApplicationContext(), AlarmReceiver.class);
final PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
final AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
buttonsTimer.get(0).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+42000000, pendingIntent);
}
});
最佳答案
使用变量存储开始时间:
long startTime = SystemClock.elapsedRealtime()+42000000;
然后要找到闹钟的剩余时间,只需从开始时间减去当前时间即可:
long timeRemaining= startTime - System.currentTimeMillis();
这将使 timeRemaining
包含闹钟响起之前剩余的时间,以毫秒为单位。然后只需使用 setText()
将其设置为 TextView
。
关于java - 如何知道闹钟还剩多少时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43833499/