2017-11-15 1 views
0

Ich muss Accelerometer auf Hintergrund-Service auf Android ausgeführt implementieren. Der Thread muss sowohl auf dem Weg als auch auf dem Ereignis basierend auf Beschleunigungsmesserdaten kommunizieren. Der Dienst muss auf unbestimmte Zeit ausgeführt werden, und falls das Betriebssystem den Dienst beendet, wird es vom vorherigen Zustand neu gestartet. Ich habe etwas recherchiert und bin mir nicht sicher, ob ich Bound Service oder Out of Process Service nutzen soll. Ist es möglich, diese Aufgabe zu implementieren? Welche Art von Service funktioniert für dieses Problem?Wie Beschleuniger auf Hintergrund ausgeführt werden?

+0

Vordergrunddienst: https://developer.xamarin.com/guides/android/application_fundamentals/services/part_1_-_started_services/#Foreground_Services – SushiHangover

+0

Wird dieser Vordergrunddienst auch ausgeführt, wenn das Telefon gesperrt ist? –

+1

Ja, denken Sie daran wie Ihr MP3-Player, der in der Benachrichtigungsleiste sitzt. Als Vordergrund-Service hat es eine höhere Priorität, so dass das Betriebssystem es zuletzt als erledigt betrachtet, es vermeidet das automatische Einschlafen Ihrer Dienste, um Batterie in späteren APIs zu sparen, etc ... Der "Nachteil" ist der Benutzer muss bewusst gemacht werden dass es läuft, also die Anforderung, in der Benachrichtigungsleiste platziert werden, persönlich sehe ich das nicht als ein Problem und wünschte, es wäre eine harte Voraussetzung für alle Dienste .., – SushiHangover

Antwort

1

Ist es möglich, diese Aufgabe zu implementieren? Welche Art von Service funktioniert für dieses Problem?

Sie benötigen partial wake lock, um zu verhindern, dass der Dienst gestoppt wird.

Dann können Sie bestimmte Dienste wie Foreground Service verwenden, da @SushiHangover vorgeschlagen wurde, Beschleunigungsmesserdaten zu verfolgen und Ereignisse bei Bedarf auszulösen.

Verwandte Themen