2010-08-06 3 views
4

나는 이것에 대한 명확한 대답을 찾을 수 없을 것 같습니다. 저는 백그라운드에서 살고 특정 기간에 사용자에게 하루 동안 알리고 싶은 아이폰 앱을 명세하고 있습니다. 따라서 사용자는 아침에 앱을 실행 한 다음 휴대 전화를 계속 사용하고 몇 시간마다 알림 창이 열립니다.iPhone 앱이 백그라운드에서 얼마나 오래 살 수 있습니까?

내 앱이 OS에 의해 (자동으로) 종료됩니까? 아니면 영원히 살면서 사용자에게 알릴 필요가 있을까요?

덕분에, 에릭

답변

13

기본적으로 아이폰 OS 4에서 백그라운드에서 실행 세 가지 종류가 있습니다 :

  1. 예 게시하거나 사진을 업로드 (배경에 "마무리"물건에서 실행은 끝내기 등). 사용자가 다른 앱으로 전환 한 후 OS에 추가 시간을 부여하라고 요청하면 시간이 얼마나 남았는지 알려줍니다. 백그라운드에서 무한정 실행할 수는 없습니다.

  2. VoIP, 위치 추적 (예 : GPS 내비게이션) 또는 오디오 재생과 같은 특정 작업을 수행하기 위해 백그라운드에서 실행됩니다. 백그라운드에서 수행 할 운영 체제에 대해 말한 내용 만 수행 할 수 있습니다.

  3. 로컬 알림 (UILocalNotification). 당신의 설명에서, 이것은 당신이 찾고있는 것입니다. 실제로 실행 중이 아니며 알림을 예약하기 만하면 사용자에게 알릴 때 알림을 받고 앱으로 이동할 수 있습니다. 사용자에게 동적으로 알림을 보내야하는 경우 (예 : 알림을받을 필요가있는 위치를 알지 못하거나 위치 또는 VoIP가 트리거되지 않은 경우) 푸시 알림을 조사하는 것이 좋습니다.

애플은 여기에 좋은 개요가 있습니다 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

+0

감사합니다, 그것은 환상적이다, 나는 당신이 right-- UILocalNotification 아마 내가하고 싶은 일을 할 것 같아요. 호기심, 배경 처리의 두 번째 유형 (위에서 설명한 내용)에 대해 VoIP, 위치 추적 및 오디오 유형의 활동 만 수행하도록 제한됩니까? 아니면 배경에서 원하는대로 할 수 있습니까? – Eric

+1

꽤 많이 있습니다. 연속적으로 백그라운드 작업을 수행하는 경우, 현재 세 가지 유형의 활동 만 허용됩니다. 계약 상 (앱 스토어)에서 할 수있는 일을 할 수있을뿐만 아니라 만들 수있는 API 호출의 유형도 제한되어 있습니다. 백그라운드 오디오를하고 OpenGL ES 기능을 호출한다고하면, 곧 죽게 될 것입니다. – puzzle

+1

아, 한 가지 추가 메모. 최근에 개발자는 단순히 조용한 오디오를 재생하고 추가 기능 ("바로 죽일 수있는"유형의 기능을 전혀 사용하지 않음)을 수행하여이를 피하려고했습니다. 앱이 거부되었지만 침묵 대신 유용한 오디오를 재생하면 앱이 승인 될 수 있다고 (분명히 말하면 오디오 재생 이외에도) http://tapbots.com/blog/pastebot/ pastebot-music-in-background – puzzle

관련 문제