Russian subtitles

← Sunshine в фоновом режиме

Get Embed Code
10 Languages

Showing Revision 10 created 01/19/2015 by alexandra mishina.

  1. Помните, как в уроке 2 Кэтрин использовала
  2. AsyncTask, подключённый к кнопке refresh
    для обновления наших данных?
  3. Рейто говорил о том,
    что это плохая идея,
  4. поскольку AsyncTask не связан
    с Activity Lifecycle.
  5. Виртуальная машина будет хранить
    объект Activity
  6. до тех пор, пока запущен AsyncTask,
    даже после того, как Android
  7. вызовет метод onDestroy для Activity
    и будет ожидать её уничтожения.
  8. Если вы повернёте телефон,
    режим работы будет:
  9. уничтожить вашу Activity и создать новую.
  10. Примитивная реализация класса AsyncTask
    на данный момент имеет два потока,
  11. пытающихся осуществить то же самое
    обновление и тому подобное.
  12. Суть в том, что это не самый
    лучший образец
  13. для потенциально очень долгой
    фоновой операции,
  14. такой как выгрузка с Web-сервисов.
  15. Если вы выйдете из приложения,
    AsyncTask продолжит выполняться
  16. до тех пор, пока поддерживается
    ваш процесс,
  17. но он будет выполняться с низким
    приоритетом; и ваш процесс
  18. будет завершён в первую очередь,
    если устройству
  19. потребуется больше ресурсов.
  20. И это большая проблема.
  21. Ваше приложение должно быть видимым
    и работать на переднем плане
  22. для создания задачи в первую очередь.
  23. Поскольку мы начали операцию
  24. по обновлению погоды
    в момент запуска приложения,
  25. это может привести
    к нежелательным последствиям,
  26. если погода будет меняться быстро.
  27. Поэтому сейчас мы научимся правильно
    выполнять обновления.
  28. Мы хотим автоматизировать этот
    процесс, пока приложение
  29. находится на переднем плане.
  30. Но более важно для нас,
    чтобы приложение получало
  31. регулярные обновления в фоновом режиме
    с минимальной разрядкой батареи.
  32. Это будет особенно важно
    немного позднее в этом уроке,
  33. когда мы познакомимся
    с уведомлениями о погоде.