Подтвердить что ты не робот

Зачем использовать службу android?

Мне интересно, какой смысл использовать службу android для выполнения фоновой работы, когда вам нужно делать много всего, чтобы получить доступ к каким-либо общедоступным методам или получить большой кусок данных из службы, такой как более крупный объект List.

почему бы просто не использовать простой POJO, который делает материал в фоновом режиме для вас в отдельном потоке, если вам нравится, и получить доступ к его общедоступным методам без создания интерфейсов с использованием AIDL, привязки к сервису и т.д.?

Кажется, много работы нужно сделать для доступа к методу из класса обслуживания или это действительно не точка класса обслуживания в android?

Я разработал класс службы android, который получает 100 элементов в структуре xml от веб-службы, которые затем обрабатывают его в POJO, который затем сохраняется в списке, но мне трудно найти способ отправить этот список назад к активности, называемой этой службой.

Я читал об использовании объектов parcebales, но вместе со всеми намерениями .putExtra имеют ограничения по размеру, поэтому я могу столкнуться с проблемами в будущем.

Я подумываю о канаве Android-сервисов, и я быстро узнал, почему я не люблю использовать их в первую очередь: (

простой SomeBackgroundPojo backroundTask = new SomeBackgroundPojo(); backgroundTask.getData();

Кажется soooo намного проще, чем иметь дело с parcelables, serealizable objects, AIDL, bind etcc и т.д. все просто для достижения двух строк кода, которые я только что напечатал выше: (

4b9b3361

Ответ 1

Nitpick: объект с заданной фоновым заданием не точно, что обычно подразумевается простой старый объект Java.

Если вам все равно, что происходит с выполняемой работой, если ее запрашивающая активность или приложение закрыты, то непременно избегайте сервисов. Одним из основных моментов Сервисов является то, что они могут оставаться в живых, когда пользователь переходит от Activity: если вы выполняете только работу по заполнению пользовательского интерфейса ListView, всеми способами используйте, например, AsyncTask, как обсуждается в этом более раннем вопросе.