2014-05-29 2 views
1

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

Я попробовал OnStop(), но это не очень хорошая идея для меня, потому что он может запускать несколько раз, и я запускаю только один экземпляр.

Я попробовал OnDestroy(), но это просто не срабатывает, поскольку я использую только одно действие в своем приложении и большую часть времени его убивают с помощью SWIPE.

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

Спасибо!

ответ

0

Вы можете добавить описание своих услуг в manifest.xml stopWithTask = "false", а в вашем устройстве - onTaskRemoved (Intent rootIntent), чтобы узнать, когда действие, начавшее службу, остановлено для уровня API 14 и более поздних версий.

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

+0

Я просмотрю эту благодарность, мне очень грустно, что нет лучшего способа, как какое-то основное закрывающее событие в приложении ... Почувствуйте, что мне всегда нужно сражаться на андроидной системе. – Pilouk

+0

Я сделал то же самое, но сервис не мог начаться, не могли бы вы мне помочь? –

+0

@HirenPatel было некоторое время с тех пор, как я заглянул в андроид, я не знаю о последних изменениях api, но могу попробовать. Любой журнал ошибок или что-то еще? – Onur

1

Только один экземпляр службы будет работать независимо от того, сколько раз вы его начинаете. Каждый раз, когда клиент начинает службу, срабатывает метод onStartCommand. return Service.START_STICKY;, чтобы ваше обслуживание оставалось бежать на заднем плане после выхода вашего приложения. Но будьте осторожны, если все будет занято, а телефон нуждается в памяти, ваша служба будет убита, и вам придется перезапустить ее, как @Onur предлагает с консервативным периодическим AlarmManager намерениями.

+0

Я использую foreground, потому что я хочу, чтобы он запускался, даже если мое приложение закрыто, поставить флаг, начинающийся липким, недостаточно. Проблема с onStartcommand заключается в том, что, как вы сказали, это огонь много раз. Я могу использовать только метод onCreate. – Pilouk

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