在 Android 上设置约会提醒的最佳方式是什么?我希望有比 AlarmManager 更好的东西。
假设您有一个应用程序,允许用户存储下一次 dentry 预约(或任何预约 - 无关紧要 - 但假设每年只有 1 或 2 次预约)的提醒。随着约会的临近,它应该会弹出一个通知,即使应用程序没有运行(假设手机已开机),它也会工作。
AlarmManager 可以做到这一点,但每次设备重启时都必须重新激活它。这很丑陋,原因有 3 个:-
如果将应用程序安装到 SD 卡,则无法正常工作(许多用户会攻击不提供 app2sd 支持的应用程序)。
如果没有存储提醒,则该服务仍必须在启动时运行才能发现。据我所知,仅在需要时以编程方式设置 BOOT_COMPLETED 监听器是不可能的。
没有人希望他们的手机在启动时因这些类型的服务而陷入困境。
所以我想知道是否有人知道更好的解决方案?我只想存储一个长期约会。最好使用内部 Android 服务,而不依赖于访问 Google 日历等,或类似的东西。有什么想法吗?
最佳答案
正确的解决方案是 AlarmManager。您可以通过使用 PackageManager.setComponentEnabledSetting() 以编程方式更改是否在启动时启动,以仅在您安排了警报时启用接收器组件。
在实践中,AlarmManager 在启动时保留警报是没有用的,因为绝大多数应用程序需要在启动后重新评估警报。例如,日历需要重新同步它们等。保留它们有一个很大的缺点:应用程序中的错误可能会在警报管理器中留下垃圾数据,即使重新启动也无法清除。
关于SD卡,可以看http://developer.android.com/reference/android/content/Intent.html#ACTION_EXTERNAL_APPLICATIONS_AVAILABLE了解何时重新安装外部存储并且您的应用可以再次运行。
关于android - 在 Android 上创建约会提醒的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481137/