Android 具有灵活时间表的警报管理器?

Android alarm manager with flexible schedule?

我正在开发一个后台服务,我希望用户选择该服务何时运行,所以我包含了 github 中的两个库来制作日期范围和时间范围选择器,以及一个循环选择器。 我可以在文本视图中获取用户的选择。我是 android 的新手,所以我唯一的想法是将这些选择存储在本地数据库中,然后让警报管理器访问存储的数据,并使用该数据设置以下参数。

alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
        SystemClock.elapsedRealtime() + AlarmManager.INTERVAL_HALF_HOUR,
        AlarmManager.INTERVAL_HALF_HOUR, alarmIntent);

但我觉得我把事情复杂化了。如果我直接将参数传递给包含警报管理器的 activity,即使用户关闭他的 phone,它们是否会被存储和保留?除非用户通过界面更改警报管理器参数,否则即使 phone 重新启动,也应保留以前的值。

这些是提供给用户选择服务时间表的不同界面。

您应该将这些数据保存在 shared preference 中,然后从中读取并启动重复警报。共享首选项即使在设备重启后也能保留您的数据。如果你有关于 servicealarm 的问题,那是不同的,你应该问得更清楚。