我使用Xamarin Forms开发了一个应用程序,我正在尝试根据一些更新的数据更新每个平台的通知。
Android的流程如下(iOS的唯一区别是它使用后台提取):
如果应用程序处于打开状态或应用程序位于后台,则此工作正常。但是,如果应用程序已关闭,则更新现有通知的调用将失败。发生这种情况是因为Xamarin Forms在应用程序关闭时尚未初始化,因此无法使用Dependency Service,导致通知无法更新。
我想使用Dependency Service,因为我的应用程序使用Xamarin Forms,我想在不同平台之间共享尽可能多的代码。有没有人知道解决这个问题的方法,同时仍然使用Xamarin Forms?
因此,当应用程序关闭时,似乎无法调用Xamarin Form Dependency Service。但是,我能够为我的问题找到一个不同的解决方案。
我必须有更多的平台特定代码来克服这个问题。我所做的不是使用Dependency Service来更新我现有的通知,而是收集了所需的信息以更新通知并将其发送回每个平台。然后,平台将使用收到的信息并更新通知本身。
这意味着不会共享调用更新通知,但它只是一些平台特定的逻辑,我很满意,因为它允许我在关闭应用程序时更新通知。