Эффективное кэширование загрузки данных в Android

Я реализовал службу очереди в Android, которая будет изменять состояние на основе очереди и событий подключения wifi/данных.

Я ставлю транзакции в очередь для отправки на удаленный адрес. Если устройство имеет соединение с данными или wifi, оно будет перебирать очередь и отправлять данные по адресу url, пока очередь не опустеет или не произойдет событие разъединения.

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

Ввод: низкий уровень приема! Мое приложение сильно тормозит при низком уровне приема 3G. (Да, вся загрузка происходит вне потока ui.) Похоже, что причина этого замедления связана с тем, что отправка на сервер занимает очень много времени, а иногда просто не происходит.

Мой вопрос в том, как я могу решить эту проблему? Проверить качество сигнала? Опросить известный адрес? Как это решают другие приложения, например, Gmail? Это должно быть распространенным сценарием!

7
задан Jonathan 13 February 2012 в 05:19
поделиться