0

В Android, как я могу запустить что-то в фоновом режиме с наивысшим приоритетом?Запустить что-нибудь в фоновом режиме с наивысшим приоритетом

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

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

+0

Можете ли вы опубликовать код, который «на некоторых устройствах он занимал почти минуту»? Информацию об услугах и привязку к ним можно найти здесь, http://developer.android.com/guide/components/services.html – petey

+0

Не могли бы вы выяснить, почему на некоторых устройствах он приближается к минимуму? Одна минута - большое время по сравнению с 2 секундами. Я предполагаю, что причина - это еще что-то, почему это занимает минимум, и я не думаю, что он постоянно получает процессор за минуту. Знайте, какие причины могут найти решения. – cgr

+0

Как насчет запуска вашего сервиса в отдельном процессе? – duynt

ответ

0

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

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

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