2015-02-25 9 views
1

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

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

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

Я также пробовал исследования в Google, но не получил никакого хорошего решения.

Пожалуйста, помогите мне. Спасибо.

+0

Android не должен очищать правильно сохраненные данные приложения или разрешать другое приложение, чтобы это сделать - это то, что должно произойти только при удалении или в меню настроек. Если у пользователей устаревших устройств Android со сломанной безопасностью установлены неправильно разработанные приложения, которые уничтожают ваши данные, вы можете открыть AlertDialog при следующем запуске и объяснить, почему они не должны делать это с вами. Конечно, другая возможность заключается в том, что вы не должным образом сохраняете свои данные - как их хранить? Вы действительно должны ожидать, что процесс вашего приложения может умереть, особенно когда он находится в фоновом режиме. –

+0

@Ajay Вы имеете в виду, что данные, хранящиеся в 'Application class', очищаются? если это так, это не является хорошим подходом к хранению данных в классе приложения. См. Эту статью: http://www.developerphil.com/dont-store-data-in-the-application-object/ –

+0

@AbhishekV: да, вы правы. но мне нужна эта информация только в пределах области применения. после закрытия приложения, тогда вся информация должна быть ясной. Я думаю, мне нужно пойти на SharedPrefrences. правильно? – Ajay

ответ

0

Вы не можете этого сделать. Если вы хотите, чтобы ваше приложение продолжало отправлять данные на удаленную службу, даже если приложение находится в фоновом режиме, вам нужно сделать это в течение длительного времени Service. Имейте в виду, что служба работает по умолчанию в основном потоке, поэтому вам нужно запустить свои коммиты с сервером в фоновом потоке (как вам нравится, asynctask, wtv). Затем, чтобы действительно убедиться, что Android не убивает ваш сервис, если он работает на низком уровне памяти, вам необходимо настроить службу как foreground service с уведомлением.

Таким образом, даже если ваше приложение отправлено на задний план, вы уверены, что связь с Android будет продолжена.