0
我在SWIFT(2.0)斯威夫特,Apllication上的模擬器的背景,但不是設備
var timer: dispatch_source_t!
var a = 0
func startTimer() {
let queue = dispatch_queue_create("com.domain.app.timer", nil)
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue)
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 1 * NSEC_PER_SEC) // every 60 seconds, with leeway of 1 second
dispatch_source_set_event_handler(timer) {
self.a = self.a+1
print(self.a)
}
dispatch_resume(timer)
}
func stopTimer() {
dispatch_source_cancel(timer)
timer = nil
}
這樣做的代碼上運行
的問題是,在模擬器上此代碼的工作很好,我在CONSOL見每秒遞增一個數字,當我進入模擬器的主頁時,數字仍然遞增, 在設備上,一旦我們退出應用程序上下文,數字就停止遞增。 那麼如何讓它在設備上保持增量?
感謝您的回答,但有沒有辦法在後臺執行我的示例代碼,要求用戶權限或其他? –
'beginBackgroundTaskWithName'可以實現,但是隻有在應用程序進入暫停模式之前才完成一些冗長的任務。這並不意味着爲了讓它保持運行。你想達到什麼目的? – Kirsteins
好的,我想運行一個沒有長時間的任務,一直運行,所以你告訴我這是不可能的嗎? –