Android (API 28) - получение неявных намерений в фоновом режиме - PullRequest
0 голосов
/ 09 февраля 2020

Я дико запутался с текущими возможностями фонового обслуживания Android и мне нужна помощь специалиста:)

Приложение "xDrip" передает свою информацию через (я думаю, неявно) намерение с имя действия "com.eveningoutpost.dexdrip.BgEstimate". Я хочу получить эти намерения. Поскольку не разрешено помещать их в манифест, я зарегистрировал их динамически в методе onCreate () моего класса приложения. Это прекрасно работает, пока приложение работает (даже если приложение не открыто на экране). Но если я проведу пальцем по экрану в обзоре приложения, оно больше не получит намерений, даже если я не отменю регистрацию намерений.

Мой вопрос сейчас: каков наиболее подходящий способ надежного получения этого (неявного) намерения все время? Так и когда пользователь смахивает приложение на экране обзора приложения?

Ура!

1 Ответ

3 голосов
/ 10 февраля 2020

Это прекрасно работает, пока приложение работает (даже если приложение не открыто на экране).

Точнее, это прекрасно работает, пока ваш процесс работает.

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

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

Какой самый подходящий способ получить это (неявное) намерение надежно все время?

Технически это невозможно.

Вы приблизитесь, если воспользуетесь сервисом переднего плана, чтобы продлить процесс. Однако:

  • Пользователь по-прежнему может смахнуть приложение с обзорного экрана, и это может остановить вашу службу и завершить процесс

  • Даже процесс со службой переднего плана может быть автоматически завершен на Android через значительный промежуток времени

  • Ваше приложение будет потреблять системную память все время, что пользователи могут или не могут оценить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...