是否有 PeriodicWorkRequest 等同于 iOS 在后台使用?
Is there PeriodicWorkRequest equivalent for iOS to use in background?
我们正在开发 Xamarin.Forms 应用程序。
我们需要做的机制之一是在后台上传一堆图片,如果失败重试直到成功。
对于Android,很简单:
using AndroidX.Work;
...
PeriodicWorkRequest uploadWorkRequest = PeriodicWorkRequest.Builder.From<UploadWorker>(TimeSpan.FromMinutes(20)).Build();
WorkManager.Instance.Enqueue(uploadWorkRequest);
哪里
public class UploadWorker : Worker
{
public UploadWorker(Context context, WorkerParameters workerParameters) : base(context, workerParameters) { }
public override Result DoWork()
{
//do your stuff
}
}
显然 iOS 不存在这种机制,但是 运行 在后台执行任务并在任务失败时重复的功能应该存在。
iOS是否有等效的 PeriodicWorkRequest?
在iOS中我们可以使用NSTimer来实现一些重复任务。
_timer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(20), () =>
{
this.InvokeOnMainThread(()=>{
//Your code goes here
});
}
开始计时
timer.Fire();
停止定时器(离开当前ViewController时调用)
_timer.Invalidate();
我们正在开发 Xamarin.Forms 应用程序。
我们需要做的机制之一是在后台上传一堆图片,如果失败重试直到成功。
对于Android,很简单:
using AndroidX.Work;
...
PeriodicWorkRequest uploadWorkRequest = PeriodicWorkRequest.Builder.From<UploadWorker>(TimeSpan.FromMinutes(20)).Build();
WorkManager.Instance.Enqueue(uploadWorkRequest);
哪里
public class UploadWorker : Worker
{
public UploadWorker(Context context, WorkerParameters workerParameters) : base(context, workerParameters) { }
public override Result DoWork()
{
//do your stuff
}
}
显然 iOS 不存在这种机制,但是 运行 在后台执行任务并在任务失败时重复的功能应该存在。
iOS是否有等效的 PeriodicWorkRequest?
在iOS中我们可以使用NSTimer来实现一些重复任务。
_timer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(20), () =>
{
this.InvokeOnMainThread(()=>{
//Your code goes here
});
}
开始计时
timer.Fire();
停止定时器(离开当前ViewController时调用)
_timer.Invalidate();