iPhone 응용 프로그램이 배경 검색에 의해 시작되었는지 알려주는 방법
-
15-09-2020 - |
문제
My Application은 NSUserDefaults를 사용하여 일부 값을 저장하여 응용 프로그램 업데이트에서 복원 할 수 있거나 백인 작업이 종료되도록합니다.백그라운드 링은 정수 값을 자동으로 저장하지만 사용자가 실행 프로그램에서 응용 프로그램을 종료하면 숫자가 손실되며 viewDidUnload 메서드가 배경을 입력 할 때 발생하지 않습니다.응용 프로그램이 언로드 할 때마다 NSUSERDEFAULTS를 저장할 수있는 방법이 있습니다.또한 ViewDidIdload 메서드는 동일한 문제가 있었으며 백업을 불러 일으키지 않습니다.이런 방식은 무엇입니까?
p.s.지금까지는 응용 프로그램이 저장 해야하는 유일한 데이터만이 화면 수의 int입니다.
업데이트 : UIAPPlicationDidenterBackgroundingNotification은 귀하의 제안과 함께 훌륭합니다!
해결책
결국 사망하기 전에 데이터를 저장할 수는 없지만 ApplicationDidenterBackground : 앱 대리인
ApplicationDidbeComeacive :하지만 백그라운드에서 앱에서 호출 된 경우 데이터가 어떤 방법으로 보존되었을 때 데이터를 저장할 이유가 없습니다.
다른 팁
앱이 백그라운드에서 시작되었는지 여부를 알 수 없으며 앱 대리인이 Springboard에서 시작된 경우 동일한 일련의 이벤트를 얻을 수 있기 때문에 현재 설정된 방법을 알려줍니다.
Joost가 말한 것처럼 ApplicationDidenterBackground 콜백 내부의 상태를 복원하는 데 필요한 것을 저장해야합니다.본질적으로, 당신은 이것이 사악한 프로세스 사신에 의해 무자비하게 살해되기 전에 앱이 얻을 마지막 메시지라고 가정해야합니다.
WWDC 2010 세션 비디오 , 특히 세션 105를 확인해야합니다.- iPhone OS에서 멀티 태스킹, 철저한 설명을 위해 Part 1.