Я хотел бы записать временную метку всякий раз, когда пользователь открывает приложение. Теперь я смог записать в методе ViewDidLoad
, однако, как только пользователь закрывает приложение, и он переходит на задний план, а затем снова открывает приложение, я не могу получить отметку времени, потому что ViewDidLoad
больше не запускается. Есть ли у вас какие-либо идеи, куда поместить мой временной код?Запись TimeStamp каждый раз, когда пользователь использует приложение
ответ
Вы можете поместить его в - (void)applicationDidBecomeActive:(UIApplication *)application
, но это не является хорошим подход, поскольку пользователь, запускающий приложение, не является единственным действием, которое приведет к сохранению метки времени, поскольку существуют другие ситуации, когда этот метод может получить заполненными.
От компании Apple Documentation
applicationDidBecomeActive: Сообщает делегат, приложение стал активным.
Этот метод вызван, чтобы сообщить вашему приложению, что он перешел из неактивного в активное состояние. Это может произойти, потому что ваше приложение было запущено пользователем или системой. Приложения могут также возвращаться к активному состоянию, если пользователь предпочитает игнорировать прерывание (например, входящий телефонный звонок или SMS-сообщение), которое временно отправило приложение в неактивное состояние.
Правильный подход поместить код, который хранит метку времени как внутри, так и application:didFinishLaunchingWithOptions:
applicationWillEnterForeground:
Первый метод будет вызван при первом запуске, а второй, когда приложение запускается из фона. Поскольку проигнорированное прерывание не отправило приложение на задний план, applicationWillEnterForeground
не будет вызываться в этом случае, поэтому у вас не будет отметки времени, сохраненной после того, как пользователь, например, проигнорирует телефонный звонок.
Проверьте this answer, так как он очень хорошо суммирует роль методов, связанных с обработкой отправки приложения на задний план и возвращения его на передний план и для чего вы должны использовать каждый из них.
Внесите applicationDidBecomeActive:
в свой делегат приложения или обратите внимание на уведомление UIApplicationDidBecomeActiveNotification
.
Попробуйте использовать - (void)viewDidAppear:(BOOL)animated:
. Он вызывается всякий раз, когда на экране появляется вид.
Или вы можете посмотреть в UIApplicationDelegate
и попробовать реализовать что-то вроде:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
или
- (void)applicationDidBecomeActive:(UIApplication *)application
- 1. Как создать сеанс каждый раз, когда пользователь использует мой webapp?
- 2. Как вызвать функцию каждый раз, когда пользователь открывает приложение
- 3. Вставить Запись каждый раз, когда страница обновляется
- 4. AlarmManager работает каждый раз, когда приложение запускается
- 5. AlarmManager пожаров каждый раз, когда приложение запускается
- 6. Фрагмент уничтожается каждый раз, когда приложение закрыто.
- 7. Как разместить на стене Facebook пользователя каждый раз, когда пользователь использует Facebook Application
- 8. Как подсчитать количество раз, когда каждый пользователь что-то сделал?
- 9. Typeahead каждый раз, когда пользователь записывает определенное слово
- 10. Listfragment Каждый раз, когда
- 11. Обеспечить новый сеанс каждый раз, когда пользователь подключается к Servlet
- 12. Должен ли я звонить setMinimumBackgroundFetchInterval каждый раз, когда приложение перезагружается?
- 13. Выполнение подписки каждый раз, когда пользователь меняет роли
- 14. Изменить токен для TokenAuthentication каждый раз, когда пользователь регистрируется в
- 15. Переключение класса CSS каждый раз, когда пользователь нажимает - JQuery
- 16. Лак: очищать кеш каждый раз, когда пользователь нажимает кнопку «как»
- 17. Деградация качества изображения jpg каждый раз, когда пользователь посещает страницу?
- 18. Chart.js удваивается каждый раз, когда пользователь прокручивает к нему
- 19. Empty активность каждый раз, когда пользователь нажимает на Предложения
- 20. Как вызвать функцию javascript каждый раз, когда пользователь прокручивает
- 21. Хранить «время» в firebase каждый раз, когда пользователь нажимает кнопку
- 22. Выполнять скрипт оболочки каждый раз, когда создается новый пользователь
- 23. Загружать просмотр каждый раз, когда приложение становится активным
- 24. изменяет uri каждый раз, когда приложение перезапускается в телефоне Windows?
- 25. Приложение, выполняющее AsyncTask каждый раз, когда переключатели ориентации
- 26. Unity пожары «Пользователь аннулировал вход» каждый раз
- 27. Как увеличивать запись с +1 каждый раз, когда MySql
- 28. Запись в новую строку каждый раз, когда функция повторяется?
- 29. Рабочий процесс Vtiger6.4 Каждый раз, когда запись изменена, не работает?
- 30. Как вызвать скрипт каждый раз, когда пользователь входит в систему (или всякий раз, когда сеанс активен)
Вместо этого используйте viewWillAppear. http://stackoverflow.com/questions/3643559/what-uiviewcontroller-method-is-called-when-opening-app-from-background – Madivad
'viewWillAppear:' будет [не дозвонились] (HTTP://stackoverflow.com/questions/5277940/why-does-viewwillappear-not-get-called-when-an-app-comes-back-from-the-background), когда приложение входит на передний план. – omz