【问题标题】:How to avoid SystemAlarms creeping to my application getNextAlarmClock() of my application如何避免 SystemAlarms 蔓延到我的应用程序 getNextAlarmClock() 我的应用程序
【发布时间】:2018-02-26 07:26:26
【问题描述】:

我正在构建一个应用程序,在其中设置特定时间的警报。为此,我使用 Android 的 AlarmClock 来设置警报。在这里我尝试在他的应用程序上显示下一个 AlarmClock 时间以了解下一个警报。

例如:我使用 alarmManager.setAlarmClock(...) 设置了上午 9:00、下午 6:00 的闹钟,我的应用程序在主屏幕上使用 alarmManager.getNextAlarmClock() 显示下一个闹钟时间为上午 9:00。

当我在系统提供的时钟应用程序上设置其他一些闹钟并将闹钟设置为上午 8:00 时,我遇到了一个问题。这个闹钟时间将反映在我的应用程序中,下一个闹钟时间显示下一次是设置为上午 8:00 而不是上午 9:00。这是不应该的。

 private String getNextAlarmClock() {

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        AlarmManager.AlarmClockInfo alarmClockInfo = alarmManager.getNextAlarmClock();

        Log.d(TAG, "time of next alarm in millis" + alarmClockInfo.getTriggerTime());

        return alarmClockInfo.getTriggerTime() + "";

}

有人可以在这方面帮助我吗? 感谢您的帮助。

提前致谢!

【问题讨论】:

    标签: android alarmmanager android-alarms setalarmclock


    【解决方案1】:

    如果您调用系统警报管理器,那么这对您手机中的所有应用程序都是通用的。 getNextAlarmClock() 将在您的手机中为您提供下一个警报,而不是通过您的应用程序。如果您想要特定于您的应用程序的警报,那么您必须在不使用警报管理器的情况下创建它。

    如果您可以通过系统警报管理器发出警报并且问题仅显示下一个警报时间,那么我建议使用系统警报管理器设置时间并将此信息保存到数据库/共享首选项。要显示下一个警报时间,您可以从数据库中获取保存的数据,而不是从警报管理器中获取。

    【讨论】:

    • 我怎样才能让它的功能与 AlarmManager 的 AlarmClock 相同,但现在不用于下一个闹钟计时
    • 但我怀疑维护下一个警报时间跟踪可能需要忙碌的工作,这需要持续关注了解下一个警报时间表
    • 那么就可以用shared preference代替DB了,更简单易用。你可以在这里查看:developer.android.com/training/data-storage/…
    • 嗨 Sudha,这能回答您的问题吗?
    • 感谢 Sudhin 的输入。我正在努力。希望它应该可以工作
    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2011-05-26
    相关资源
    最近更新 更多