【发布时间】:2020-07-05 22:25:02
【问题描述】:
我有一个在 Xamarin.Forms 平台上开发的聊天应用程序,用户可以在其中互相聊天。我在共享项目中管理了 c# 代码和 UI。
长期以来,我一直在 iOS 平台上遇到问题。当 iOS 应用程序在屏幕上运行时,具有前台模式,则应用程序可以成功接收另一个用户发送的消息。当应用程序在后台模式下运行并且有人发送消息时,我想通过使用本地通知来通知用户(无推送远程通知 - 因为我认为我的应用程序已经在最小化模式下运行,因此无需唤醒应用程序通过实现推送通知)。即使我已经成功实现了本地通知,但问题是,
当 iOS 应用程序进入后台模式时,主线程(任务)被暂停,所以当一些用户发送消息时应用程序无法执行代码(当应用程序被最小化时),因此它将无法显示本地通知。但是当应用程序回到前台时,线程/任务会恢复,然后即显示本地通知和消息。
我已经在 Info.plist 中的 Background Modes 下选择了“Background fetch”属性。我还在 FinishedLaunching 方法的行下方添加了
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);
我已经通过以下链接工作并实现了代码,但对我不起作用。
Xamarin forms background tasks run only when app is open on ios
When an iOS application goes to the background, are lengthy tasks paused?
https://docs.microsoft.com/en-us/xamarin/ios/app-fundamentals/backgrounding/
我认为我的问题与 iOS 后台处理有关,那么,有没有人知道如何在应用程序已经处于最小化模式时执行代码?
【问题讨论】:
标签: ios xamarin xamarin.forms xamarin.ios xamarin-studio