Приложението ми за iOS е прекратено поради натиск върху паметта, когато използвам Photos.app

Изпълнявам приложението си на устройство с iOS 7.0.1 и iPod Touch от 5-то поколение. Когато следвам стъпките по-долу, приложението ми се затваря с грешка по-долу на Xcode 5 без никаква грешка в конзолата

App quit Unexpectedly Terminated due to Memory Pressure

Стъпки: 1) Стартирайте моето приложение с помощта на Xcode 5. Влезте и след това отидете на Начало

2) Щракнете върху бутона Начало, така че приложението ми да влезе във фонов режим (виждам, че приложението ми е във фонов режим)

3) Стартирайте вграденото приложение за снимки от iOS. Щракнете върху 1 или 2 снимки

4) След като направите 1-2 снимки, приложението се затвори неочаквано прекратено поради натиск в паметта

Не правя нищо в приложението си. Когато проверих използването на процесора, неговите 0% и използвана памет = 15,2 MB Освен това няма друго приложение, работещо на заден план, освен моето приложение.

Може ли някой да помогне с това? Благодаря

Не разбирам защо се случва това. Ако не използвам Photos.app, приложението работи гладко.


person iOSAppDev    schedule 26.12.2013    source източник
comment
Когато приложението ви не прави нищо, iOS ще го убие веднага щом потребителят направи нещо, което изисква много ресурси. Ако приложението ви прави нещо, тогава е по-малко вероятно приложението ви да бъде убито. Но все пак може да се случи.   -  person Abhi Beckert    schedule 26.12.2013


Отговори (1)


Нищо не можете или трябва да направите по въпроса. Вашето приложение вече не е на преден план, а приложението на преден план (снимки) иска повече памет. За да осигури това, iOS ще прекрати всички приложения, работещи във фонов режим. Няма значение колко памет използва вашето приложение, iOS ще прекрати фоновите приложения, стига приложението на преден план да изисква повече памет.

След като приложението ви влезе във фонов режим, можете да очаквате то да бъде прекратено по всяко време. За да подобрите потребителското изживяване, можете да разгледате Активиране на запазване и възстановяване на състоянието във вашето приложение. Това на теория позволява на вашето приложение да започне там, където е спряло, когато потребителят се върне към него.

person jrturton    schedule 26.12.2013
comment
Не забравяйте, че iOS не избира произволно кои фонови приложения да прекрати. Базира се на това, което тези приложения правят в момента. Ако приложението прави нещо (напр.: получава GPS актуализации) и използва само 15MB, то вероятно няма да бъде убито, освен ако приложението на преден план наистина не се нуждае от 100% от ресурсите. - person Abhi Beckert; 26.12.2013
comment
Вярно, но ОП каза, че неговото е единственото работещо приложение. А приложението за снимки е малко кофти... - person jrturton; 26.12.2013
comment
@jrturton Благодаря за отговора. Имам внедрено време за изчакване на неактивност в моето приложение. Не мога да използвам възстановяване на състоянието, тъй като всеки път, когато приложението ми се стартира, трябва да поискам влизане поради съображения за сигурност според изискването на проекта. Засега това, което се случва, е, че приложението ми се убива поради приложението Снимки и следващия път приложението поиска влизане. Така че тестерите смятат, че времето за изчакване на празен ход не работи правилно. - person iOSAppDev; 26.12.2013
comment
Винаги можете да запазите времето, през което потребителят е преминал на заден план, и да влезете автоматично, ако следващото стартиране е достатъчно скоро. Зависи от естеството на останалата част от вашето приложение. - person jrturton; 26.12.2013