내 응용 프로그램은 백그라운드 모드로 들어갈 때 호출되는 함수를 가지고있다. 사용자가 앱을 다시 여는 경우 스레드를 중지하고 싶습니다. 지금까지 노력하고있는 것은 아무것도 없습니다. 이 NSThread를 어떻게 중지합니까?
여기에 지금까지 내 코드입니다 :class Neversleep {
private static var callback : (()->Void)?
private static var thread: NSThread?
static func start(callback:()->Void) {
self.callback = callback
Neversleep.thread = NSThread(target: self, selector: #selector(Neversleep.task), object: nil)
Neversleep.thread?.start()
}
static func stop() {
print("NEVERSLEEP:STOP")
Neversleep.thread?.cancel()
}
@objc static func task() {
while (true)
{
sleep(3);
print("we are still running!")
callback?()
}
}
}
I 앱 위임의 DidEnterBackground 방법에서) Neversleep.start (호출합니다.
내가 willEnterForeground에서 Neversleep.stop()를 호출하고 있습니다 ...하지만 그것은 스레드를 중지 아니에요.
나는 내가 여기에 뭔가를 분명 누락 확신 해요. 근데 뭐? 자동으로 스레드를 죽이지 않는 스레드에서 cancel
를 호출
: 당신과 함께이 문제를 해결할 수 있습니다. 정말 고맙습니다. – bflora2