Xamarin.Forms中的异步Tasks如何在iOSAndroid后台模式下工作?

问题描述 投票:1回答:1

我已经阅读了微软关于移动端后台的文档,也看到了应用程序可以处于的各种生命周期状态。但我还是对C#中的后台任务和 背景 在iOSAndroid中。

疑问: 比方说,我在ViewModel或Model类中启动了一个新的后台C#任务(具体模式无关)。它通过WebSocket接收数据以及发出HTTP请求,并无限期地保持运行。当用户将应用程序移至后台时,该任务是否会继续运行?如果没有,为什么,我需要做什么才能确保它继续运行?

c# xamarin.forms xamarin.android xamarin.ios
1个回答
1
投票

在Android部分,你可以使用依赖服务来开启一个前台服务。

https:/docs.microsoft.comen-usxamarinandroidapp-fundamentalsservicesforeground-services。

你可以在前台服务中运行你的Https请求,当应用被用户移到后台时,它会推送通知并保持服务的活力。

这是我对使用前台服务的回答,你也可以参考一下。如何在后台运行android xamarin form中的webservice方法?

在IOS部分,我建议你用Backgrounding with Tasks来实现。

https:/docs.microsoft.comen-usxamariniosapp-fundamentalsbackgroundingios-backgrounding-techniquesios-backgrounding-with-tasks。

你可以把你的后台HTTP请求放到 BeginBackgroundTask 方法,如下面的格式代码。

nint taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {

// your  background HTTP request
});
© www.soinside.com 2019 - 2024. All rights reserved.