Запуск обновления местоположения в отдельной теме в сервисе Android - PullRequest
2 голосов
/ 25 февраля 2012

Я немного сбит с толку, решая, каким образом мне следует выполнять фоновые сервисные задачи.Вот как выглядит моя служба.

Служба Android (в фоновом режиме выполняются две задачи)

  1. Зарегистрируйтесь на locationListener и, когда получено новое местоположение, обработайте его для определения лучшегоместоположение или нет.

  2. Опрос на сервере каждые 10 минут, чтобы проверить, если какая-либо сторона сервера изменяет удаленную базу данных.

Теперь я не хочу, чтобы эти две задачи боролись за время и ресурсы.Поэтому я планирую запустить эти два одновременно.Для опроса на сервер я использую повторяющиеся таймер таймера, но для LocationListener, что я должен использовать?

Можно ли использовать исполняемый файл Java для обработки нового местоположения с некоторой логикой и обновления местоположения до сервера?Если моя идея в порядке, предоставьте пример кода, чтобы показать, как я могу выполнить обновления местоположения в новом потоке.

Если вы считаете, что какая-то проблема в моей нынешней идее, пожалуйста, предложите новую для моих требований.

1 Ответ

1 голос
/ 25 февраля 2012

Я не вижу ничего, что говорит о том, что вы не можете зарегистрировать LocationListener, который работает в вашем сервисе, в документации: http://developer.android.com/reference/android/location/LocationListener.html http://developer.android.com/guide/topics/location/obtaining-user-location.html

Это аналогичный вопрос с ответом,вам следует прочитать: Служба Android с обратными вызовами locationListener

«Теперь я не хочу, чтобы эти две задачи боролись за время и ресурсы. Поэтому я планирую запустить эти две задачи одновременно».^ Неясное утверждение, сопровождаемое, казалось бы, нелогичным планом.Если вы можете быть конкретны в отношении того, что вы подразумеваете под «временем» и «ресурсами», вы можете получить некоторые полезные отзывы об этом.

Краткий ответ: Да.Зарегистрируйте LocationListener, он будет вызываться, когда доступно обновление Location.Это СЛУШАТЕЛЬ в том смысле, что он вызывается, когда это необходимо для того, на кого вы его регистрируете - вам не нужно называть это самостоятельно.Лучше всего не повторять TimerTask, вместо этого использовать однократные снимки, которые сбрасываются кодом, вызываемым при каждом тике.

Что касается бесплатного кода, возможно, вам следует нанять кого-нибудь для выполнения тяжелой работы дляты?Это создаст еще одну работу в сообществе Android и снизит риски, связанные с попытками сделать что-то, в чем вы не очень хорошо разбираетесь. В противном случае, запачкайте руки и попытайтесь реализовать их так, как вы думаете, это будет работать лучше, вернитесь кПереполнение стека, если / когда вы столкнулись с определенной проблемой.

...