2012-09-21 25 views
0

我需要的应用程序在后台进入后做一些处理,所以我说这个代码,以我的应用程序:BeginBackgroundTask在MonoTouch的

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; 
     } 
    }); 
} 

然后我监视文件系统(仿真器应用程序)和文件从来没有写入目的地。有什么理由为什么会发生这种情况?我错过了什么吗?

回答

5

BeginBackgroundTask方法的参数是到期处理程序。它会在您的后台时间到期之前执行。那就是你应该只结束任务而没有别的。

它在BeginBackgroundTask调用之后,您的背景时间开始。

Apple documentation.

Multitasking on iOS with MonoTouch.

+0

感谢季米特里斯。我今天早些时候遇到了你的帖子,我想我没有仔细阅读它。然而,奇怪的API。 – Candide