Eine einfache Stoppuhranwendung mit Jetpack Compose unter Verwendung von Vordergrund- und gebundenen Diensten
Auf YouTube finden Sie ein vollständiges Video-Tutorial
Diese Anwendung besteht im Wesentlichen aus 3 verschiedenen Texteinheiten, die Stunden, Minuten und Sekunden darstellen. Außerdem haben wir zwei Schaltflächen auf der Benutzeroberfläche. Die erste Schaltfläche wird je nach Dienststatus geändert und die zweite Schaltfläche ermöglicht es uns, den Vordergrunddienst abzubrechen, was zum Zurücksetzen unserer Stoppuhr führt.
Sie können die Stoppuhr entweder über die UI-Tasten oder über das Benachrichtigungsfeld steuern. Da wir Dienste nutzen, können wir den Stoppuhrstatus auch über das Benachrichtigungsfeld verfolgen, wenn wir die Anwendung schließen.
Hilt ist eine Abhängigkeitsinjektionsbibliothek für Android, die den Aufwand für die manuelle Abhängigkeitsinjektion in Ihrem Projekt reduziert. Für die manuelle Abhängigkeitsinjektion müssen Sie jede Klasse und ihre Abhängigkeiten manuell erstellen und Container verwenden, um Abhängigkeiten wiederzuverwenden und zu verwalten.
Hilt bietet eine Standardmethode zur Verwendung von DI in Ihrer Anwendung, indem es Container für jede Android-Klasse in Ihrem Projekt bereitstellt und deren Lebenszyklen automatisch verwaltet. Hilt basiert auf der beliebten DI-Bibliothek Dagger und profitiert von der Kompilierungszeit-Korrektheit, Laufzeitleistung, Skalierbarkeit und Android Studio-Unterstützung, die Dagger bietet.
Ein gebundener Dienst ist eine Implementierung der Service-Klasse, die es anderen Anwendungen ermöglicht, sich an ihn zu binden und mit ihm zu interagieren. Um eine Bindung für einen Dienst bereitzustellen, müssen Sie die Rückrufmethode onBind() implementieren. Diese Methode gibt ein IBinder-Objekt zurück, das die Programmierschnittstelle definiert, die Clients zur Interaktion mit dem Dienst verwenden können.
Vordergrunddienste führen Vorgänge aus, die für den Benutzer erkennbar sind.
Vordergrunddienste zeigen eine Benachrichtigung in der Statusleiste an, sodass Benutzer aktiv wissen, dass Ihre App eine Aufgabe im Vordergrund ausführt und Systemressourcen verbraucht.
Geräte, auf denen Android 12 (API-Level 31) oder höher ausgeführt wird, bieten ein optimiertes Erlebnis für kurz laufende Vordergrunddienste. Auf diesen Geräten wartet das System 10 Sekunden, bevor es die mit einem Vordergrunddienst verknüpfte Benachrichtigung anzeigt. Es gibt einige Ausnahmen; Bei einigen Arten von Diensten wird immer sofort eine Benachrichtigung angezeigt.