Member 12853776 Ответов: 0

Запуск приложения навсегда


Привет,

Я разрабатываю приложение на Xamarin (Android), и у меня есть проблема, связанная со временем жизни приложения.
Мне нужно, чтобы приложение, которое я разрабатываю, работало на устройстве в течение нескольких дней (например, 3, 4 или более).

Что я уже пробовал:

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

Я уже пробовал реализовать приложение в качестве GPS (вызываю Android, рассматриваю с высоким приоритетом), но безуспешно! Происходит та же ситуация, что и с остановкой запущенных процессов.

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

Я хотел бы знать, есть ли у кого-то предложения, которые могут быть полезны для решения этой проблемы?

Или если то, что я пытаюсь сделать, невозможно сделать в одном приложении?

Спасибо!

Dave Kreskowiak

Я не знаю, так как никогда не занимался разработкой Android, но я бы, вероятно, начал с поиска в Google "Android Xamarin prevent application sleep".

Richard MacCutchan

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

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

RickZeeland

В приложениях Windows вы можете использовать приложение.Перезапуск, например, в случае закрытия, но я не знаю, можете ли вы сделать это в Xamarin.

johannesnestler

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

Mike Barthold

Вы можете вернуть START_STICKY в onStartCommand вашего сервиса. Мы используем это и в нашем SIP-приложении.
Имейте в виду, что ваш сервис не имеет пользовательского интерфейса -вы просто не можете заставить android поддерживать вашу деятельность.
Но вы можете сохранить свою службу живой.
Поэтому выбирайте свою архитектуру таким образом, чтобы ваши критические задачи, которые должны быть выполнены, были частью липкой службы.
Здесь вы должны рассмотреть несколько вещей:
- Андроид 6+ при выключенном экране отключает сеть. Если вам нужно быть доступным извне (например, входящие sip-звонки), используйте push-уведомления.
- вы можете* не * общаться с интернетом в режиме 24/7 в android, если устройство отключено от источника питания. дремлющий / глубокий сон побеждает. примите это и спланируйте свое приложение соответствующим образом.
- устройство просыпается после 2 часов глубокого сна в течение небольшого периода обслуживания - вы получаете несколько секунд процессорного времени, прежде чем оно снова заснет. следующее окно обслуживания составляет более 2 часов, следующее Еще больше... и так далее, пока пользователь не включит экран. пользователь-не программная часть, которая просто устанавливает блокировку пробуждения.

0 Ответов