每隔X个时间运行后台任务

时间:2015-06-19 12:20:57

标签: xamarin xamarin.forms

我想启动一项服务,在所有平台上偶尔检查一下是否有通知出现。是否有任何nuget连接所有平台或一些例子?

2 个答案:

答案 0 :(得分:8)

您可以使用Device.StartTimer(TimeSpan minutes)方法启动在给定时间跨度后将重复的后台任务。这是一个代码示例:

var minutes = TimeSpan.FromMinutes (3); 

Device.StartTimer (minutes, () => {

    // call your method to check for notifications here

    // Returning true means you want to repeat this timer
    return true;
});

这包含在Xamarin Forms中,因此您不需要任何特定于平台的逻辑。

http://iosapi.xamarin.com/index.aspx?link=M%3AXamarin.Forms.Device.StartTimer(System.TimeSpan%2CSystem.Func%7BSystem.Boolean%7D)

答案 1 :(得分:1)

我认为你能做的最好的就是:

  

不幸的是,这两个平台已经发展为处理执行后台代码的方式完全不同。因此,我们无法将后台功能抽象到Xamarin.Forms库中。相反,我们将继续依赖本机API来执行我们的共享后台任务。

有关此主题的更多信息,请访问:   https://robgibbens.com/backgrounding-with-xamarin-forms/