iOS4 이후 멀티태스킹을 기본적으로 멀티태스킹이 지원됩니다.
지원되는 멀티태스킹을 Disabled시키기 위해 아래와 같은 작업을 해주시면 됩니다.
어플 info.plist 속성 중 UIApplicationExitsOnSuspend를 추가 후 On 시켜주시면 됩니다.
추가 시 아래와 같이 추가되는 것을 확인 하실 수 있습니다.
[sourcecode language="xml"]
Application does not run in background
[/sourcecode]
출처 : http://cafe.naver.com/mcbugi.cafe by 와이씨(yc21c)
1.Do not make any OpenGL ES calls from your code
OpenGL ES 호출하지 말것
2.Cancel any network-related services before being suspended.
응용프로그램이 백그라운드로 갈때 네트웍관련 서비스 모두 닫으란 소리
3.Save your application state before moving to the background.
백그라운드로 이동하기 전에 응용 프로그램 상태를 저장합니다.
4.Release any unneeded memory when moving to the background.
백그라운드로 이동할때 불필요한 메모리 해제시켜라
5.Avoid using shared system resources.
시스템리소스 공유를 하지말아라.
6. Avoid updating your windows and views.
프로그램의 윈도우나/뷰개체들을 업데이트 하지말아라.
7. Remove sensitive information from views before moving to the background
백그라운드로 이동하기전에 민감한정보등은 뷰에서 제거해라.
8. Do minimal work while running in the background
백그라운드에서 실행되고 있을땐 최소의 작업만을 해라.
(포어그라운드 프로그램보다 자원이 덜 할당된다고..너무 많은 시간 백그라운드에서 실행하면 OS가 프로그램을 재시작 해버리거나 죽여버린다고 합니다. 그 기준은 아직 모르겠음.)
3번 부연 설멸 :
During low-memory conditions, background applications are purged from memory to free up space
Suspended applications are purged first and no notice is given to the application before it is purged.
As a result, before moving to the background, an application should always save enough state information to reconstitute itself later if necessary.
Restoring your application to its previous state also provides consistency for the user, who will see a snapshot of your application’s main window briefly when it is relaunched.
로우메모리 컨디션이 되면 백그라운드 어플들 메모리 공간을 지우게 되니. 백그라운드로 갈때 항상 복원가능한 어플정보를 저장해둬라. 일시중지된 어플들이 먼저 제거된다. 제거될때 아무예고도 없이 제거된다 .
따라서 백그라운드로 이동되기 전에 어플은 항상 나중에 다시 구성되기 위한 정보를 저장해둬라.
정리하자면 백그라운드 에서 예고없이 지워지기 싫으면 백그라운드에서 메모리 많이 쓸 생각말고 웬만한 메모리 다 해제시키고 어플 상태정보 잘 저장해둬라. 화면에 출력되는 API 는 쓸 생각하지말고. --
백그라운드에서 오디오 플레이는 가능
백그라운드에서 위치정보서비스 가능
배터리로우 이벤트라던지 타임체인지라던지 시스템이벤트를 받아올수있음.