2016-10-20 4 views
0

iOS에서 백그라운드 작업을 실행할 수 있습니까? 정기적으로 전화의 일부 시스템 상태를 확인하고 위젯에 대해보고하는 것과 같은가?iOS의 주기적 백그라운드 작업

또한 iPhone을 종료하면 전화가 다시 시작될 때 해당 백그라운드 작업을 다시 실행할 수 없다는 것을 발견했습니다.

답변

1

짧은 대답 : 번호 긴 답변은 더 미묘한 차이가 있지만 어쨌든해서는 안됩니다. 백그라운드 새로 고침을 위해 애플리케이션을 예약 할 수는 있지만 신뢰할 수는 없습니다 (앱은 일정한 간격으로 실행되지 않습니다). 사용자가 작업 전환기에서 앱을 스 와이프하면 앱이 백그라운드에서 전혀 실행되지 않습니다. 또 다른 해킹 방법은 서버가 앱을 더 안정적으로 깨우기 위해 자동 푸쉬 버튼을 보내는 것입니다. 그러나 이것은 여전히 ​​성공 보장되지 않습니다. 사용자가 작업 전환기에서 앱을 스 와이프하면 앱이 실행되지 않습니다.

두 경우 모두 앱에서 위젯 업데이트를 실행할 수 없습니다. 위젯 수명은 운영 체제에서 관리합니다. 대신 widgetPerformUpdate(completionHandler:)을 구현하고 위젯 업데이트를 수행하십시오. 그러나 위와 같이이 작업은 정기적 인 작업이 아닙니다.

+0

감사합니다. 당신의 대답은 확실합니다. 앱이 항상 배경에있는 경우 (사용자가 스 와이프하지 않는다고 가정) 정기 작업을 계속 수행 할 수 있습니까? 즉, 앱이 비활성 상태 일 때 일부 코드를 실행하게하는 모든 메소드입니다. – user6539552

+0

사용자가 스 와이프하지 않으면 침묵하는 푸시 알림 ('contentAvailable : 1'만있는 페이로드)이 가장 좋습니다. 이것은 응용 프로그램을 깨울 것이며 당신을 실행할 수 있습니다. –