2013-05-08 37 views
0

在我的應用程序中,即使應用程序在後臺運行,我也想運行計時器。我想有兩種方法可以做到這一點即使應用程序在後臺運行NSTimer的MonoTouch

  1. 採用螺紋
  2. 當應用程序中去捕捉背景時間和回來

我不知道哪種方式更好?如果我使用線程,那麼它的工作時間有多長?它在後臺工作幾個小時?

謝謝

回答

0

如果你的應用程序進入到後臺狀態,你沒有太多的時間來停止當前線程。

你可以像運行後臺任務:

... 
public partial class AppDelegate : UIApplicationDelegate 
{ 
    ... 
    public override void DidEnterBackground (UIApplication application) 
    { 
     int taskID = UIApplication.SharedApplication.BeginBackgroundTask (() => {}); 
     var task = new Thread (new ThreadStart (() => { 
      // Save application's current state. 
     })); 
     task.Start(); 
    } 

因此你必須達到10 minutes

還有iOS不允許運行app無限時間。請參閱BackgroundExecution演示以供參考。

+0

這是否意味着我不會在背景中運行一個任務(計時器在我的情況下)超過10分鐘。 – User382 2013-05-08 17:35:10

+0

你可以做到這一點,但'iOS'不保證該應用程序保持活着。 – 2013-05-08 18:07:44

+0

另一種方式是註冊應用程序,它可能會執行一些特殊的操作,如使用VOIP服務播放背景音頻。參考文獻:http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3,paragraph'Implementing Long-運行後臺任務'。 – 2013-05-08 18:16:19