2016-11-09 5 views
-2

사용자가 몇 가지 명령을 말할 때 응답해야하는 음성 응용 프로그램을 개발하고 싶습니다. 내 업무를 완수하기 위해서는 서비스가 필요하다고 생각합니다.하지만 여러 리소스를 통해 오랫동안 서비스를 실행할 수 없다는 것을 배웠습니다. 안드로이드 시스템은 유휴 상태 일 때 자동으로 서비스를 파괴합니다.백그라운드에서 계속 실행되는 서비스

제 질문은 서비스가 계속 실행되고 사용자 작업에 응답 할 수 있는지 여부입니다.

나는 안드로이드 개발에 초보자입니다. 질문에 잘못된 것이 있으면 저를 시정하십시오.

도움 주셔서 감사합니다.

+0

말하기 명령에 응답하려면 해당 이벤트를 잡는 브로드 캐스트 리시버를 만들고 서비스 클래스를 실행하십시오. –

+1

안드로이드는 더 중요한 작업을위한 리소스가 필요할 때마다 서비스를 중단하고 그렇게하지 못하게 할 수 없습니다. 할 수있는 일은 서비스 클래스 내의 onStartCommand()에서 START_STICKY를 반환하여 시스템에서 매번 서비스가 종료 될 때마다 서비스가 다시 시작되도록하는 것입니다. –

+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

첫번째 우선 순위입니다.