2016-11-09 12 views
-2

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

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

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

Спасибо за помощь!

+0

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

+1

Android убивает службу, когда ей нужны ресурсы для выполнения более важных задач, и вы не можете помешать ей это сделать. Что вы можете сделать, так это вернуть START_STICKY в свой onStartCommand() внутри вашего класса обслуживания, чтобы ваша служба возобновилась после каждого раза, когда система была убита. –

+0

Посмотрите эту библиотеку https://github.com/cmusphinx/pocketsphinx –

ответ

0

Вы можете использовать startForeground.

Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text), 
     System.currentTimeMillis()); 
Intent notificationIntent = new Intent(this, ExampleActivity.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.setLatestEventInfo(this, getText(R.string.notification_title), 
     getText(R.string.notification_message), pendingIntent); 
startForeground(ONGOING_NOTIFICATION_ID, notification); 

Они убивают только в крайнем случае, если память настолько мала, что они не могут продолжать работать. https://developer.android.com/guide/components/processes-and-threads.html

1-й приоритет.

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

  • Нет связанных вопросов^_^