1
我的應用程序支持GPS,並且它在前臺和後臺都運行。我已經啓動了一個定時器,除非設備被鎖定,否則這個定時器可以完美運行 即使設備被鎖定,我也希望計時器繼續運行。NSTimer在設備鎖定時到期
誰能告訴我怎麼做到這一點?
我的應用程序支持GPS,並且它在前臺和後臺都運行。我已經啓動了一個定時器,除非設備被鎖定,否則這個定時器可以完美運行 即使設備被鎖定,我也希望計時器繼續運行。NSTimer在設備鎖定時到期
誰能告訴我怎麼做到這一點?
無論怎樣你啓動一個定時器,默認運行方式是象下面這樣:
Timer *timer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(run) userInfo:nil repeats:YES];
[[ NSRunLoop currentRunLoop ] addTimer:timer forMode:NSDefaultRunLoopMode ];
使用NSDefaultRunLoopMode
。你需要更多的靈活性,所以改變模式取代NSRunLoopCommonModes
,你應該沒問題。
所以如果我們使用NSRunLoop,定時器將運行而不考慮iPhone的狀態。我對嗎 ? – Perseus 2012-04-26 04:28:49
始終使用NSRunLoop,它是主應用程序線程的中樞。 NSTimers計劃在它上面。他們計劃與運行模式,這決定了他們是否可以被打斷或不。默認不是很好,它會被scrollviews之類的東西打斷。我已經測試了一段時間,但常見的模式很少會被打斷。我確信它可以滿足您的需求。 Apple沒有提供什麼中斷這些模式的很好的描述 – 2012-04-26 14:49:36
感謝您的描述:)希望計時器將繼續在我的應用程序中運行,除非設備關閉。 – Perseus 2012-04-27 03:37:10