Xamarin.android xamarin.forms android-服务与TaskCreationOptions.LongRunning

Xamarin.android xamarin.forms android-服务与TaskCreationOptions.LongRunning,xamarin.android,xamarin.forms,Xamarin.android,Xamarin.forms,我需要创建一个在后台运行的任务,并执行一些可能需要几分钟时间(并且与UI无关)的操作 我知道如果我创建一个常规任务,android操作系统会在一段时间后销毁它,解决方案是创建一个后台服务 我的问题是,下面的行是否可以替换服务,并且在任务完成之前,任务不会被android操作系统破坏: Task.Factory.StartNew(()=>MyTask(),TaskCreationOptions.LongRunning) 我的问题是,下面的线路是否可以替代服务 是的,您可以使用长时间运行的任务来处理

我需要创建一个在后台运行的任务,并执行一些可能需要几分钟时间(并且与UI无关)的操作

我知道如果我创建一个常规任务,android操作系统会在一段时间后销毁它,解决方案是创建一个后台服务

我的问题是,下面的行是否可以替换服务,并且在任务完成之前,任务不会被android操作系统破坏:

Task.Factory.StartNew(()=>MyTask(),TaskCreationOptions.LongRunning)

我的问题是,下面的线路是否可以替代服务

是的,您可以使用长时间运行的任务来处理耗时的操作。因为它们的本质是一样的。IntentService相当于在服务中启动新任务。您可以参考。如果您不想在服务中启动任务,请使用
线程
任务
并在您想要的任何位置启动它

在任务完成之前,android操作系统不会销毁该任务


在您杀死应用程序之前,IntentService和Task都不会被android操作系统破坏。

在xamarin创建服务的文档中:@asaf遵循google服务的文档。您会发现有两种服务,
service
IntentService
服务不是线程。它本身并不是一种脱离主线程工作的方法(以避免应用程序不响应错误)。对于耗时的操作,请使用
IntentService
。xamarin指南使服务概念变得模糊。@Mika那么为什么我需要使用服务而不是任务?与任务相比,服务的优势是什么?TaskCreationOptions.Long在android上运行task有什么好处?我的任务与任何页面/意图无关。它在后台运行,可以运行几分钟并消耗大量cpu。我担心的是,如果cpu资源不足,操作系统将杀死它,而ui将显著降低速度。我也需要在应用程序运行时完成background@asaf我在上面提到过“它们的本质是一样的。IntentService相当于在服务中启动一个新任务”,它们可以在后台运行。但服务可以通过系统方法调用,例如“计时器”、“推送通知”,您可以在进程外创建服务,并使服务始终处于活动状态。你不能在任务中这样做。但在您的情况下,它们是相同的。服务和任务都可以进行耗时的操作。操作系统将终止未运行的应用程序。当你启动一个新的任务或服务时,它不会阻塞UI线程,因为它们是不同的线程。用户界面不会变慢。