0
在我的應用程序中,即使應用程序在後臺運行,我也想運行計時器。我想有兩種方法可以做到這一點即使應用程序在後臺運行NSTimer的MonoTouch
- 採用螺紋
- 當應用程序中去捕捉背景時間和回來
我不知道哪種方式更好?如果我使用線程,那麼它的工作時間有多長?它在後臺工作幾個小時?
謝謝
在我的應用程序中,即使應用程序在後臺運行,我也想運行計時器。我想有兩種方法可以做到這一點即使應用程序在後臺運行NSTimer的MonoTouch
我不知道哪種方式更好?如果我使用線程,那麼它的工作時間有多長?它在後臺工作幾個小時?
謝謝
如果你的應用程序進入到後臺狀態,你沒有太多的時間來停止當前線程。
你可以像運行後臺任務:
...
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演示以供參考。
這是否意味着我不會在背景中運行一個任務(計時器在我的情況下)超過10分鐘。 – User382 2013-05-08 17:35:10
你可以做到這一點,但'iOS'不保證該應用程序保持活着。 – 2013-05-08 18:07:44
另一種方式是註冊應用程序,它可能會執行一些特殊的操作,如使用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