2012-02-09 5 views
0

내 응용 프로그램이 거의 출하 준비가되었다고 생각했지만이 한 가지가 나를 미치게 만듭니다!willEnterForeground가 무작위로 응용 프로그램을 다시 시작합니다

내 didEnterBackground 처리기에서 일부 이미지를 캐싱하고 내가 생각할 수있는 모든 것을 덤프하고 OS가 무작위로 내 앱을 덤프하고 다시 시작한 것처럼 보입니다. 그것은 매우 일관성있는 것처럼 보이지 않습니다. 때로는 괜찮아 지기도하고 때로는 다시 시작하기도합니다. Allocations에 따르면 내 메모리 사용량은 내 didEnterBackground에서 1 ~ 2MB 정도입니다.

그리고 모든 것을 덤핑함으로써, 나는 하위 뷰를 제거하고, 배열에서 객체를 제거하고, 엄청난 양의 재료를 설정한다는 것을 의미합니다 ... 즉, 내 willEnterForeground에서 나는 많은 것들을 재현해야합니다.

정말 그밖에 무엇을 해야할지 모르겠습니다.

여기에 도움을 주시면 매우 감사하겠습니다. 감사!

실제로 이것은 iOS 5 및 ARC를 사용하는 경우입니다.

+1

일단 백그라운드에서 앱을 종료하면 언제든지 앱을 종료 할 수 있습니다. 문제가있는 곳에서 당신의 질문 (willEnterForeground의 제목에 didEnterBackground라고 말함)이 명확하지 않은 경우가 있습니다. 응용 프로그램에 "반환"할 때 실제로 다시 시작한다고 예상해야합니다. – jrturton

+0

제목/질문 혼란에 대해 유감스럽게 생각하지만, 내 앱이 평화롭게 백그라운드로 들어가 가능한 한 많은 메모리를 공개한다는 것을 의미했지만, ** 가끔 ** 앱을 다시 방문 할 때 돌아 오는 대신 다시 시작합니다. 나는 그만 뒀다. 그리고 나는 이유를 알 수 없다. – pizzafilms

+0

예상되는 동작입니다. 당신이 단지 1k 만 사용한다면 아무런 문제가되지 않습니다. 백그라운드에서 한번 살해 당하지 않을 것이라고 보장 할 수는 없습니다. 마리우스의 대답은 정확합니다. – jrturton

답변

2

배경 상태에서는 앱이 항상 감시 대상에 의해 종료 될 수 있습니다. 앱이 항상 백그라운드에서 작동한다는 보장은 없습니다.

멀티 태스킹에 대한 자세한 내용은 WWDC 2011의 세션 320을 참조하십시오. 멀티 태스킹에 대한 많은 정보가 있습니다.

+0

그 비디오를 가져 주셔서 감사합니다. 나는 그것을 지켜 봤고 나는 이미 언급 한 모든 것을 거의하고 있었다. 그러나 나는 아직도 때때로 다시 시작한다. 정말 실망 스럽다는 것은 다른 애플리케이션이 내 것만큼 자주 다시 시작하는 것 같아요. 그리고 때로는 도구 모음 만 표시 한 경우에도 응용 프로그램이 다시 시작됩니다. 어쩌면 어떤 마술은 "나는 죽이지 않는다, 나는 좋은 놈"이라는 깃발을 던지 겠지? – pizzafilms

+0

아니요, 메모리를 낮게 유지해야합니다. 그게 다야. 나머지는 모든 강력한 감시인에게 일어난다. – mariusLAN

관련 문제