如何知道闹钟还剩多少时间

How to know how much time is left for the Alarm

在我的应用程序中,我有一个按钮可以将确定的时间设置为 运行 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 包含闹钟响起之前剩余的时间,以毫秒为单位。然后只需将其设置为 TextViewsetText().