我需要在应用程序进入后台后进行一些处理,所以我将此代码添加到我的应用程序中:
public override void DidEnterBackground (UIApplication application)
{
int taskid = 0;
taskid = application.BeginBackgroundTask(() => {
if(taskid != 0)
{
System.IO.File.WriteAllText(System.IO.Path.Combine(AppState.Current.User.Path, "blah"), "test");
application.EndBackgroundTask(taskid);
taskid = 0;
}
});
}
然后我监视文件系统(模拟器应用程序),文件从未写入目标。这有什么原因吗?我错过了什么吗?
答案 0 :(得分:5)
BeginBackgroundTask方法的参数是到期处理程序。它将在您的后台时间到期之前执行。那是你应该只结束任务而不是别的。
在BeginBackgroundTask调用之后,您的后台时间开始。