2016-11-09 9 views
-2

Ich möchte eine Sprachanwendung entwickeln, die reagiert, wenn der Benutzer einige Befehle ausspricht. Ich denke, ich brauche einen Dienst, um meine Aufgabe zu erfüllen. Aber ich habe von mehreren Ressourcen gelernt, dass ein Dienst für eine lange Zeit nicht ausgeführt werden kann. Das Android-System zerstört automatisch einen Dienst, wenn er im Leerlauf ist.Dienst, der kontinuierlich im Hintergrund läuft

Meine Frage ist also, ob es möglich ist, einen Dienst kontinuierlich zu starten, ohne zerstört zu werden und auf Benutzeraktionen zu reagieren?

Ich bin neu in Android-Entwicklung.So wenn es etwas falsch in der Frage ist, bitte korrigieren Sie mich.

Danke für die Hilfe!

+0

Wenn Sie sprechen möchten, dann erstellen Sie Broadcast-Empfänger, die dieses Ereignis abfangen und Ihre Serviceklasse ausführen. –

+1

Android tötet einen Dienst, wenn er Ressourcen für wichtigere Aufgaben benötigt, und Sie können dies nicht verhindern. Sie können START_STICKY in Ihrer onStartCommand() -Option in Ihrer Serviceklasse zurückgeben, damit Ihr Service erneut gestartet wird, sobald das System das System beendet. –

+0

Überprüfen Sie diese Bibliothek https://github.com/cmusphinx/pocketsphinx –

Antwort

0

Sie können startForeground verwenden.

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); 

Sie sind nur als letztes Mittel getötet resort, wenn der Speicher ist so gering, dass sie nicht alle laufen weiter.

erste Priorität.

Verwandte Themen