2015-01-29 2 views
1

Сначала извините за мой английский. У меня проблема, и я не могу найти решение, это звучит так: Я разрабатываю приложение, которое получает мое местоположение от gps и отправляет его на сервер tcp на ПК и сохраняет данные в виде списка (например). Я установил таймер, который отправляет местоположение каждые 2 секунды. Все работает нормально, даже если я подключу двух клиентов к серверу, пока телефоны не будут заблокированы .. тогда мой сервер получит уродливую строку .. Кажется, что отправленные строки находятся на уровне (строка содержит части данных от купленных клиентов, детали конкатенированы) .. но когда я разблокирую телефоны, сервер снова получит обычные строки. Я хочу знать, как заставить приложение запускаться в тех же параметрах, когда происходит блокировка экрана. Любые идеи?Android-темы и таймер замедляются, когда lockscreen

+1

Это звучит как OnPause или OnStop вопроса. Как вы обрабатываете приложение в этих методах? –

+0

i переопределить onPuase .. и заставить его ничего не делать, что должно означать, что мое приложение продолжает работать .. но это не .. или я worng? но я не думаю, что это проблема, потому что, если я нажму кнопку домой, мое приложение будет работать отлично, пока телефон не будет заблокирован. –

+0

см. мой ответ. Madalin –

ответ

0

Если вы делаете это внутри действия или фрагмента, у вас, вероятно, проблема с жизненным циклом вашего приложения. Если вы хотите понять жизненный цикл, прочитайте эту статью документации: http://developer.android.com/training/basics/activity-lifecycle/index.html

Ничего не делая при использовании метода onPause, это не помешает вашей активности спать, Android может убить вашу деятельность в любое время.

Правильный способ сделать это будет внутри Service, служба является специальным компонентом на Android, который выполняется независимо от того, что делает или не делает пользователь, и в этом случае вы можете создать службу, которая содержит блокировка следа, чтобы не дать ему спать в течение нескольких секунд, вам нужно отправить свои данные.

Более простым решением было бы использовать что-то вроде этого Location polling library и удовлетворить его вашим потребностям.

0

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

Если вы прочитали о activity lifecycle.

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

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

Activity Lifecycle from Android com активность Lifecycle из android.com

Смежные вопросы