Синхронизация активности

1

Мое приложение имеет одну услугу и набор действий.

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

Служба запускает действия или поднабор действий.

Порядок, в котором служба начинает изменения активности в дневные часы.

Но каждый раз служба должна ждать окончания действия (для получения результата активности) перед запуском следующего действия.

Моя идея заключалась в использовании вызова wait() в сервисе между двумя действиями.

Каждое действие использует sendBroadcast для возврата результата в BroadcastReceiver.

BroadcastReceiver выполняет notify(), чтобы освободить службу и перенаправляет результат активности в службу.

Очевидно, что эта идея не работает. Проблемы:

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

2) Я не знаю, как передать информацию из BroadcastReceiver в Service (в первый раз я объявил BroadcastReceiver внутри класса Service, но когда служба ввела wait() процесс остается заблокированным и BroadcastReceiver никогда не получает).

Пожалуйста, я принимаю все предложения. Может быть, изменение архитектуры приложения?

Спасибо

Теги:
android-activity
synchronization

1 ответ

0

Обычно поток представляет собой одно действие, запускающее следующий. Вы должны перепроектировать так, чтобы, когда вы готовы к завершению() activity1, вы уже знаете, что такое Activity2, и вы начинаете его с Activity1. Возможно, ваша служба должна выставить метод, который ваши действия могут вызвать, чтобы получить определение, которое должно быть следующим действием. Это нормально, так как Сервисы и действия выполняются в одном процессе и могут звонить друг другу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню