2

在我的 Xamarin Forms 应用程序中,我内置了一个使用跨平台插件LocalNotificationsPlugin 的提醒功能。在 Github 页面上,作者针对 Android 声明:

目前,如果手机重新启动,则不会发送待处理的通知,您应该将它们保存到设置中并在重新启动时重新发送。

我已经研究了如何做到这一点,看起来我需要一个广播接收器,在我的清单文件中由启动 RECEIVE_BOOT_COMPLETED 触发。这在我测试时效果很好,在我重新启动设备时调用显示通知代码。但是,当我尝试实现我需要的东西时,它会变得有点复杂。

我必须依赖注入我的设置服务来检索当前活动的用户。然后我必须使用注入的 todo 服务来获取他们所有的提醒。这两者通常在应用程序运行时作为任务完成。但是要从广播接收器执行此操作,看来我要么需要使用GoAsync()(对于持续不超过 10 秒的操作),要么启动一个IntentService. 我不确定其中哪一个更适合,但我的猜测是 IntentService,因为用户可能有很多存储的提醒。

如果应用程序未运行,我也在尝试确定我们的安全 API 是否能够返回当前登录的用户。

调试也是一个令人头疼的问题。大多数在线指南告诉您如何在涉及 Android Studio 或 Eclipse 时重新附加到进程,但 Visual Studio 和 Xamarin 似乎没有任何方法可以做到这一点。

  1. 所以我想我的主要问题是:我使用广播接收器和可能的意图服务是否正确?
  2. 即使应用程序未运行,是否可以访问存储的用户?
  3. 重启后使用广播接收器时有没有办法有效调试?我已经尝试重新连接调试器并记录到 DDMS,但在查看发生了什么方面并没有取得太大的成功。

一个试图完全按照我正在做的事情的示例项目对我很有帮助,但我正在努力寻找一个与我的问题相当的项目。

4

0 回答 0