android - Xamarin.Forms 应用程序在 Debug/Release 中的不同实例加载和持久首选项行为
问题描述
我有一个简单的 MVVM Xamarin.Forms 应用程序,它用作推送通知的客户端。通知是通过 Firebase 从我的后端发送的。该应用程序只有 Android 版本。最近,我更新了我的应用程序,通过Xamarin.Essentials.Preferences
. 我在标签文本和视图模型中的属性之间进行了绑定。属性处理存储/检索操作。
我的问题与应用程序加载有关。在调试中,当我单击收到的推送通知时,我会跳转到应用程序中,我可以在其中看到带有我想要的时间戳的通知文本。当我终止应用程序/收到另一个通知时,我会在以一种或另一种方式加载应用程序时看到它们。
在发布时,当我单击收到的推送通知时,我会跳转到看不到通知文本的应用程序。标签文本为空白,这是默认状态。如果我通过启动器加载应用程序或通过任务管理器切换到应用程序,我可以看到通知文本。应用程序的终止会重置存储的通知。
我的问题是为什么调试/发布之间有不同的行为,并且在两种模式下都有相同的行为。我认为这与Android应用程序如何威胁实例有关。
笔记
源代码主要是来自 Visual Studio 的默认 Xamarin.Forms 模板,带有最新版本的 NuGet 包。
两种模式下推送通知的传递都很好,区别在于当我单击传递的通知本身时应用程序加载App
或分类的方式。MainPage
解决方案
推荐阅读
- azure - 如何向使用 Azure 服务总线 Java SDK 的发布者/订阅者客户端添加重试选项(重试策略)?
- mysql - Powershell String 保持 CR & LF
- c# - TPL Dataflow 管道中的图像刷新问题
- kubernetes - AKS 管道中的 Kudu 服务
- python - 为什么按钮移动不正确
- ansible - 如何使用 Ansible 停止 VM 并验证 VM 是否已停止?
- sql - 在报表生成器上设置布尔过滤器时出错
- reactjs - 为什么即使更改的 prop 或 state 与 JSX 无关,React 也会重新渲染组件?
- javascript - 某些用户在创建后不存在于“本地”数据库中
- operating-system - Genode 和 Sculpt OS 之间的区别,以及它们的用途