Является ли подход клиентского приложения для остальных клиентов в google io 2010 актуальным?

Два года прошло, происходит фрагмент, намерение службы, загрузчик курсора. Является ли этот подход еще актуальным или есть лучший или зрелый образец для разработки клиента для Android-андроида, особенно по сравнению с вариантом B (у меня нет привилегии для отправки изображения, вместо этого изображение можно найти из этого сообщения ).

Я знаю, что часть поставщика контента имеет важное значение. Что относительно сервисного помощника и компонента обслуживания? До сих пор метод startService – это характер Контекста или его подклассов. Что означает, что вспомогательным сервисом будет активность. Так элегантно ли инициировать активность у поставщика контента или он должен быть инициирован из активности сверху.

  • Для тех из вас, кто попал в исходный код исходного кода google io 2011 , вы рассмотрите статический класс SyncStatusUpdaterFragment в HomeActivity в качестве помощника службы, хотя он не смог запустить SyncService, но он прослушивает обратный вызов из SyncService и Триггер обновления пользовательского интерфейса. Так можно ли это рассматривать как отклонение подхода Вергилия Добжански?

Появляется сервис, услуга намерения, asyncTask и поток. На мой взгляд, служба намерения подходит для синхронизации большого пакета данных с удаленного сервера. Вот почему они используют его в iosched . Но общий сценарий заключается в том, что только часть элементов будет синхронизирована с удаленным сервером. Таким образом, служба намерения слишком тяжелая. Даже сервисный подход. Мы могли бы просто использовать asyncTask или поток в поставщике контента или какой-то компонент этого для выполнения этой задачи. Или есть какая-то убедительная причина для использования этой услуги и прохождения пути сервис-сервис-процессор. Я говорю о серьезном применении.

Так что вы думаете?

    Так элегантно ли инициировать активность у поставщика контента или он должен быть инициирован из активности сверху.

    Вы никогда не будете инициировать активность у поставщика контента. Все должно начинаться с вашей деятельности, будь то запрос AsyncTask, Service или Content Provider …

    AsyncTasks – это, как правило, плохой выбор. Они просто испорчены, когда дело касается изменений конфигурации (например, изменения ориентации экрана). Погрузчики – это решение, но сложная часть – это упаковка, которая вместе с вашими сетевыми вызовами. Одним из решений является построение сетевых вызовов с пользовательского загрузчика (подкласс AsyncTaskLoader).

    Однако в моем случае я следил за презентацией IO 2010 года. Создал класс ServiceHelper для управления запросами на сервер в объекте Service (который запускает потоки для выполнения сетевых запросов). ServiceHelper управляет ResultReceivers, которые могут быть созданы из вызывающего Activity. Это позволяет активности прослушивать события из запроса службы, например, когда запрос запускается и заканчивается (или когда он не работает). Эти потоки будут вызывать свои сетевые запросы, а затем сохранять полученные данные в ContentProvider (для кэширования и для использования в нескольких действиях, если это необходимо).

    В то же время у меня есть CursorLoader в Activity, который прослушивает конечную точку, к которой будет писать сетевой поток. Очевидно, что есть много возможностей для того, чтобы выработать себя … например, свою политику кэширования и накладные расходы для такой реализации. Но это действительно зависит от приложения, которое вы строите, и от API, с которым вы интегрируетесь.

    Так что да, я думаю, что презентация 2010 года по-прежнему актуальна. Было много неопределенных областей его выступления и продолжается сегодня. Вам нужно будет разработать дизайн, который работает для вашего приложения.

    Надеюсь, мои мысли помогут вам начать работу.