У меня есть приложение, которое имеет службу, которая выгружает фотографии, которые люди берут на сервер.Есть ли способ ограничить ресурсы, выделенные Сервисом?
В частности, пользователи отправляются на собственную камеру устройства, чтобы сделать снимок, а затем фото возвращается с помощью приложения, из которого они «одобряют» его.
Этот акт одобрения сохраняет его в файловой системе, и Служба приходит через каждые х секунд, замечает файлы, ожидающие разгрузки и разгружает их.
Все это работает нормально.
Однако ... в ситуациях, когда есть плохая связь, но достаточная для установления связи HTTP, приложение оказывается в состоянии, когда даже при разгрузке происходит в Службе, в момент, когда пользователь приходит * назад к моему приложению с фотосъемки (и Android доставляет фотографию 4-8mb обратно в мое одобрение. Активность, мое приложение зависает - иногда достаточно долго, чтобы спровоцировать приглашение «вы хотите убить или подождать». В конце концов (если вы ждете) он действительно возвращается к приложению.
Я проверял, что это связано с сетью, потому что, когда соединение сильно (или когда приложение находится в режиме самолёта - так что загрузка просто не срабатывает мгновенно), все работает Совершенно гладко. * Единственное время, когда это происходит, - это когда разгрузчик в Сервисе затруднено ханким соединением.
Итак, мой вопрос: что я могу сделать по этому поводу? Есть ли способ изолировать Сервис, чтобы он не оказывал большего влияния на приложение? Мое решение написать партнерское приложение, которое находится на устройстве, и просто пытается выгрузить файлы (это даже решит проблему?).
HERE - это отчет, который я получаю, когда пользователю предлагается приглашение WAIT/KILL. Я не уверен, что с этим делать.
«мое приложение зависает» - использовать TraceView и 'StrictMode', чтобы определить, где вы проводите слишком много времени на главном потоке приложения. – CommonsWare
Hi Commons! Я просто привязал след. Я не могу сказать, что это говорит мне точно, хотя я подозреваю, что это подкрепляет мое подозрение, что все это вызвано очень медленным/плохим подключением к Интернету. –
«Я просто привязал след» - это не имеет никакого отношения к Traceview или 'StrictMode'. – CommonsWare