ApplicationWillterminate в iOS 4.0
-
01-10-2019 - |
Вопрос
Метод делегата ApplicationWillterminate не вызывается в iOS 4.0, когда я ударю кнопку домой, я вижу приложениеWILLESignactive и ApplicationDidenterBackground Methods.
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"Application Did Resign Active");
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"Application Did Enter Background");
}
И когда я дважды нажмите на домашнюю кнопку, и снова запустите приложение, которое я нахожу ApplicationWillenterForegrounge, и ApplicationDiDBeComeActive методы делегата вызывают.
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"Application Will Enter Foreground");
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"Application Did Become Active");
}
Но я хочу знать, когда будет вызываться метод делегата ApplicationWillterminate, где я делаю резервные бумаги DB / файла.
- (void)applicationWillTerminate:(UIApplication *)application{
}
Я даже попытался поразить знак минус и удалил приложение, на котором работает на заднем плане, но все же он не называл какой-либо метод делегата.
Есть идеи ???
Решение
От руководства по программированию приложений iPhone:
Даже если вы разработаете свое приложение, используя iPhone SDK 4, а затем вы все еще должны быть подготовлены к вашему приложению. Если память становится ограниченной, система может удалить приложения из памяти, чтобы сделать больше места. Если ваше приложение в настоящее время приостановлено, система удаляет ваше приложение из памяти без каких-либо уведомлений. Однако, если ваше приложение в данный момент работает на заднем плане, система вызывает
applicationWillTerminate:
Способ применения делегата. Ваше приложение не может запросить дополнительное время выполнения фона из этого метода.
Так да, applicationWillTerminate:
вообще не будет называться очень часто в iOS 4. Если вы должны сохранить данные, вы должны сделать это в обоих applicationWillTerminate:
а также applicationDidEnterBackground:
.
Другие советы
Сессия WWDC 2010 Принимая многозадачность на ОС iPhone (Часть 2) объясняет прерывание состояния приложения чрезвычайно хорошо.
У меня есть одно решение для прекращения приложений, когда пользователь попадает в домашнюю кнопку в iOS4. Это позвонит методу делегата ApplicationWilltermate, а не входить в фоновый процесс.
- Откройте файл info.plist
- Добавьте ключ UiApplicationExitsonsUsPend
- Установите новый ключ до да
На самом деле вы также можете использовать этот шаг для этого.
- Откройте файл info.plist
- Добавить ключ -> Приложение не работает в фоновом режиме
- Установите это значение ключа для да