Я занимаюсь разработкой проекта для ББ.Приложение работает с сетью и отправляет / получает данные через HTTP.Теперь я использую очередь и администратор очередей.Диспетчер запускается с фоновым потоком и работает в цикле while (true), проверяя очередь на наличие новых транзакций на сервере.Если очередь не пуста, то транзакция выполняется, в противном случае менеджер переходит в спящий режим на 200 мс.
Процесс транзакции выглядит следующим образом: - запускается другой поток (с использованием Runnable), который открываетподключение к сети и первый поток, ожидающий фоновый поток или тайм-аут (и для этого нам нужен цикл), который мы установили.- Если соединение установлено, то запускается другой поток (с помощью Runnable), который запускает getResponseCode (), и первый поток ожидает фоновый поток или тайм-аут (и для этого нам нужен цикл), который мы установили.
Перед этим мы показываем всплывающее окно с ожиданием вращающегося изображения, а после него убираем.Он синхронизируется через Application.getEventLock ().
Иногда он нестабилен, а поток спит в течение длительного времени, игнорируя цикл ожидания-ожидания.
Я хотел бы знать, насколько обоснован такой подход, чтоСоветы и лучшие практики, какой у вас опыт?
Я использую 4.5, 4.6, 4.7 и 5.0.