在Android上创建约会提醒的最佳方法是什么?

Fal*_*ken 3 android alarmmanager

在Android上设置约会提醒的最佳方法是什么?我希望有比AlarmManager更好的东西.

比方说你有一个应用程序,允许用户存储他们的下一个牙医提醒(或任何约会 - 它并不重要 - 但假设有每年只有1或2个约会).当该约会接近时,它应该弹出一个通知,即使应用程序没有运行它也会起作用(假设手机已打开).

AlarmManager可以执行此操作,但每次设备重新启动时都必须重新激活它.这很丑陋有三个原因: -

  1. 如果将应用程序安装到SD卡,它将无效(许多用户将点燃不提供app2sd支持的应用程序).

  2. 如果没有存储提醒,则服务仍必须在启动时运行才能发现.据我所知,只有在需要时才能以编程方式设置BOOT_COMPLETED监听器.

  3. 在启动时,没有人希望他们的手机被这些类型的服务所困扰.

所以我想知道是否有人知道更好的解决方案?我只想存一个长期约会.最好使用内部Android服务,而不依赖于访问谷歌日历等,或类似的东西.有任何想法吗?

hac*_*bod 5

正确的解决方案是AlarmManager.您可以通过使用PackageManager.setComponentEnabledSetting()以编程方式更改是否在启动时启动,以便仅在安排警报时启用接收器组件.

实际上,AlarmManager中没有用于在引导期间保留警报,因为绝大多数应用程序需要在引导后重新评估警报.例如,日历需要重新同步等等.保留它们有一个很大的缺点:应用程序中的错误可能会在报警管理器中留下垃圾数据,即使重启也无法清除.

至于SD卡,您可以查看http://developer.android.com/reference/android/content/Intent.html#ACTION_EXTERNAL_APPLICATIONS_AVAILABLE,了解何时重新安装外部存储空间并重新运行您的应用程序.