Я делаю код состояния miantainance для Iphone os 4.0 с использованием класса NSUserDefault. , когда я нажимаю на кнопку «Домой», а затем нажимаю «Приложение», тогда он работает, но когда я нажимаю на кнопку «Домой», а затем нажимаю кнопку «Создать и запускать», она не работает. Почему это так?Вопрос, связанный с классом NSUserDefault
ответ
Когда вы нажимаете кнопку home на iOS 4, приложение не останавливается. Он приостановлен и помещен в фоновое состояние. Состояние пользовательского интерфейса вашего приложения автоматически поддерживается на этом этапе.
Когда вы нажмете на сборку, приложение принудительно завершает работу перед повторным запуском из Xcode.
Я предполагаю, что ваш код для сохранения состояния пользовательского интерфейса находится в методе applicationWillTerminate
. Если это так, то ваш код никогда не будет запущен на iOS 4, так как этот метод больше не вызывается (по крайней мере, это тот случай, который я видел из собственного тестирования и из опыта других людей). И в случае, когда приложение принудительно завершает работу (т. Е. По Xcode при запуске и запуске), метод applicationWillTerminate
обходит.
Вместо этого вы должны использовать методы applicationDidEnterBackground
и applicationWillEnterForeground
.
Таким образом, всякий раз, когда приложение основано на фону, оно записывает его состояние в NSUserDefaults
, гарантируя, что состояние сохранено до приложение закрывается.
На iOS 4 единственный способ полностью выйти из приложения - использовать многозадачный интерфейс (двойное нажатие кнопки «домой»), которое принудительно завершает работу приложений. Вот почему важно реализовать вышеописанные методы фоновой работы, поскольку они будут гораздо более вероятными для выполнения.
В качестве последнего примечания, возможно, стоит позвонить synchronize
на экземпляр NSUserDefaults
сразу после того, как вы напишете свое пользовательское пользовательское состояние, чтобы гарантировать, что значения по умолчанию записываются на диск в это время.
- 1. Вопрос, связанный с классом NSUserdefault
- 2. Вопрос, связанный с NSUserDefault
- 3. вопрос о NSUserDefault Класс
- 4. Связанный с классом список
- 5. вопрос, связанный с классом Locale и когда он должен использоваться?
- 6. Простой вопрос, связанный с ООП
- 7. Связанный с StringBuilder вопрос
- 8. вопрос, связанный с URL
- 9. Вопрос, связанный с C++
- 10. Вопрос, связанный с UIButton
- 11. Вопрос, связанный с UITextView
- 12. Вопрос, связанный с API
- 13. вопрос, связанный с UIColour
- 14. Вопрос, связанный с выравниванием
- 15. Вопрос, связанный с UITabelViewCell
- 16. Вопрос, связанный с @property
- 17. вопрос, связанный с UITextView
- 18. Вопрос, связанный с запросом
- 19. вопрос, связанный с UITextField
- 20. вопрос, связанный с jmeter
- 21. Связанный с классом компонент визуализации
- 22. Адрес, связанный с другим классом?
- 23. Вопрос, связанный с ячейкой UITabelview
- 24. Вопрос, связанный с PHP-сеансом
- 25. Вопрос INSERT, связанный с AUTO_INCREMENT?
- 26. Вопрос, связанный с Push Notification
- 27. Связанный с Conditon PHP Вопрос
- 28. Вопрос, связанный с управлением доменом
- 29. Вопрос, связанный с книгой iphone
- 30. вопрос, связанный с государственным обслуживанием
Существует также вызов willresignactive (lookup name), который вызывается при нажатии кнопки Home Button. – Jordan
Да, 'applicationWillResignActive' и' applicationDidBecomeActive'. Эти методы также вызывают, когда система прерывает приложение с предупреждением, элементами управления многозадачностью, входящим вызовом и т. Д. Спасибо, что принесли это Иорданию. – Jasarien
+1 Для получения полного ответа. Больше заслуживает. – Abizern