0

У меня есть приложение виджет, который обновляет себя через IntentService (начало от AppWidgetProvider)Android IntentService - выполнить другой поток в нем

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

Обновление виджета ОК, однако у меня были некоторые проблемы с виджетами.

Мне было интересно, неправильно ли вызывать другой асинхронный поток, отправляющий намерение как слушателя; потому что поток intenthandler останавливается после завершения работы onHandleIntent.

Что было бы лучшим способом справиться с этим?

ответ

1

Зачем запускать его асинхронно, когда вы уже находитесь в главной теме? Можете ли вы запустить синхронно и позволить intentservice делать то, что он будет делать в обратном вызове, когда он закончит?

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

+0

Поскольку у меня есть менеджер для всего приложения, и мне нужно будет отредактировать его или создать еще один подобный, чтобы сделать это синхронно – htafoya

+1

Ну, мне удалось переработать большую часть кода менеджера, переопределив некоторые методы. – htafoya