2014-12-22 4 views
2

Привет, я использую функцию наклейки в своем приложении. Здесь пользователь может загрузить несколько наклеек в фоновом режиме, например, Viber и Line.Должен ли я использовать ThreadPool или IntentService для моего приложения?

Я немного смущен тем, что я использую: Thread или IntentService.

также, если пользователь переходит на наклейку, которая загружается или находится в очереди, тогда мне нужно показать там.

После загрузки мне нужно сохранить его в базе данных.

помогите пожалуйста.

ответ

1

У IntentService есть то преимущество, что Сервис будет правильно запущен и остановлен, когда поток его демона занят. Коммуникация с IntentService (с использованием намерений) также проста и обеспечивает отличную изоляцию и безопасность потоков.

Если IntentService является слишком строгим (однопоточное, одностороннее, платная связь), тогда вам может понадобиться сворачивать вашу собственную связанную ExecutorService. Это достаточная работа: вам нужно управлять запуском и остановкой Сервиса, обрабатывать привязку и отпереть службу от клиентов, все время заботясь о безопасности потоков.

... на самом деле, я удивлен, что для этого нет библиотеки. Это такая общая потребность.

0

Использовать Service с ThreadPoolExecuter вместо IntentService.

+0

означает для каждого запроса мне нужно запустить сервис? – navy

+0

Да для каждого пакета наклейки. И когда вы это сделаете, вы получите экземпляр уже запущенного экземпляра вашей службы, поскольку службы являются экземплярами с одним экземпляром. . И в вашей службе у вас будет TPE, который добавит задачи в очередь задач –

Смежные вопросы