我很难找到有关Xamarin.Forms的后台任务支持的文档。 Xamarin.Forms是否为定期后台任务提供支持?
我需要为Windows Phone 10和Android实现此功能。
答案 0 :(得分:13)
XF没有后台任务的实现。您需要本地实现这些。以下是有关如何为每种类型的项目执行此操作的示例。
<强> UWP 强>
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BackgroundTask
<强>的Android 强> https://developer.xamarin.com/guides/android/application_fundamentals/backgrounding/part_2_android_services/
<强>的WinRT 强>
https://visualstudiomagazine.com/articles/2013/05/01/background-tasks-in-windows-store-apps.aspx
<强>的iOS 强>
仅适用于那些想要iOS的用户。 https://developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/
<强> Xamarin.Forms 强>
答案 1 :(得分:-2)
是的,但这取决于你需要做什么。
例如,您可以使用System.Threading.Timer(.net class)是Activity / Service
private System.Threading.Timer timer;
在活动OnCreate
TimeSpan timerTime = new TimeSpan(0, 0, 0, 0, 1000);
timer = new System.Threading.Timer(new System.Threading.TimerCallback(OnTimerFired), null, timerTime, timerTime);
在Activity OnDestroy中
if (timer != null)
{
timer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
timer.Dispose();
timer = null;
}
private void OnTimerFired(object state)
{
Do some periodic job
}
答案 2 :(得分:-2)
我使用Xamarin.Forms.Device.StartTimer方法,它使用设备时钟功能启动定期计时器。当回调返回true时,计时器将继续重复出现。
http://developer.xamarin.com/api/member/Xamarin.Forms.Device.StartTimer/