Несмотря на был задан аналогичный вопрос, у меня ситуация differnet:
Мое приложение состоит в основном из фона Service
. Я хочу начать внешние действия и вернуть результаты.
Я вижу несколько вариантов:
-
Создайте манекен
Activity
и сохраните ссылку на него для использованияstartActivityForResult
. Это, как известно, занимает довольно много памяти. -
Используйте
Broadcast Intents
вместо инфраструктуры результатов Android: попросите действия клиента транслировать результаты до закрытия. Этот вид ломает идею и не настолько эффективен. -
Используйте
Instrumentation
напрямую - попробуйте скопировать код из startActivityForResult в мою службу. -
Используйте служебные интерфейсы - сериализуйте и добавьте
AIDL
подключение к Intent для запуска Activity. В этом случае мероприятие должно напрямую вызвать службу вместо предоставления результата.
Третий подход ближе для Android для меня, но я не уверен, что это возможно - у Service нет инструментария, и реализация по умолчанию, похоже, всегда возвращает null.
Возможно, у вас есть другие идеи?