Есть ли способ заставить приложение выйти из системы вместо того, чтобы идти в фоновом режиме при нажатии кнопки дома? По соображениям безопасности было бы лучше, если приложение не запустилось в фоновом режиме, но фактически закрыто при нажатии на дом. Это не для обеспечения безопасности пользователей, а скорее для данных компании в приложении, поэтому он не является выбором пользователя. Я не мог найти способ бросить иначе, чем заставить выход, который Apple отговаривает.Как предотвратить запуск моего приложения в фоновом режиме на iPhone
ответ
См opting out of background execution в Руководстве по программированию приложений iphone:
«Если вы не хотите, чтобы ваше приложение, чтобы оставаться в фоновом режиме, когда он ушел, вы можете явно отказаться от фоновой модели выполнения путем добавления UIApplicationExitsOnSuspend ключ к Info.plist файл приложения и установив его значение YES.
Когда приложение выбирает, оно циклов между не работает, неактивных и активных состояний и никогда не входит в фон или приостановленные состояния.
Когда пользователь удаляет кнопку «Домой» для выхода из приложения, вызывается метод applicationWillTerminate: делегирования приложения, и приложение имеет примерно пять секунд для очистки и выхода до его завершения и возврата в нерабочее состояние ».
Просто зайдите в info.plist вашего проекта и отметьте «Приложение не работает в фоновом режиме» на «ДА».
К сожалению, после того, как вы попробовали все, я все еще не мог видеть, как мое приложение выходит из нажатия кнопки «домой». Он всегда попадал в фон, хотя UIApplicationExitsOnSuspend был YES и типа boolean в файле plist, и я удалил приложение из Simulator, перезапустил Xcode и Simulator и попробовал все предлагаемое.
Наконец, я начал отлаживать приложение и обнаружил одну функцию, которая препятствовала выходу приложения. Функция была довольно простой и загружала некоторые изображения из сети и получала вызов из приложенияDidFinishLaunching файла appDelegate. Эта функция была делегирует задачу создания сетевого соединения и загрузки данных в какой-то другой многоразовой класс, где я имел следующий код:
if(isBackgroundProcessingSupported){
appDelegate.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{}];
[NSURLConnection connectionWithRequest:request delegate:self];
}
И в конце концов оказалось, что приведенный выше код был ответственен за то приложение в фоновом режиме на нажмите кнопку «домой». Когда я прокомментировал приведенный выше код, мое приложение выходит, вместо того, чтобы заходить в фоновый режим.
ПРИМЕЧАНИЕ: Код был там ранее, поскольку первоначально приложение поддерживало обработку фона.
Надеюсь, это поможет кому-то, кто также пытается найти причину, подобную мне.
- 1. Запуск моего приложения в фоновом режиме
- 2. Запуск приложения в фоновом режиме в iPhone
- 3. Запуск приложения в фоновом режиме
- 4. Как предотвратить запуск CountDownTimer в фоновом режиме?
- 5. Запуск приложения в фоновом режиме
- 6. Запуск приложения в фоновом режиме?
- 7. Запуск приложения в фоновом режиме
- 8. Запуск приложения в фоновом режиме
- 9. Запуск приложения в фоновом режиме
- 10. Запуск приложения в фоновом режиме
- 11. Запуск приложения в фоновом режиме
- 12. Запуск приложения в фоновом режиме
- 13. Запуск приложения в фоновом режиме на iOS
- 14. Отправка приложения в фоновом режиме на iphone
- 15. iPhone Как предотвратить попадание моего приложения на задний экран?
- 16. Запуск ионного приложения в фоновом режиме
- 17. Запуск музыки в фоновом режиме Запуск приложения в xcode
- 18. Запуск приложения в фоновом режиме в Unity
- 19. Остановить запуск приложения в фоновом режиме
- 20. Запуск приложения iOS, работающего в фоновом режиме
- 21. Запуск приложения iOS в фоновом режиме
- 22. Запуск приложения iOS в фоновом режиме навсегда
- 23. Воспроизведение аудио в фоновом режиме моего приложения
- 24. Запретить приостановление моего приложения в фоновом режиме?
- 25. Запуск приложения в фоновом режиме Cordova
- 26. Запуск приложения Android в фоновом режиме?
- 27. Запуск приложения в фоновом режиме IntentService
- 28. Запуск другого приложения в фоновом режиме андроида
- 29. Запуск приложения BlackBerry PhoneGap в фоновом режиме
- 30. Запуск в фоновом режиме
Существует UIApplicationExitsOnSuspend, но вы можете просто очистить любую информацию аутентификации в своем приложении applicationDidEnterBackground: метод делегирования приложения и заставить пользователя снова войти в систему, когда приложение вернется на передний план (applicationDidBecomeActive :) –