Einen Worker erstellen
Definieren Sie Hintergrundarbeit in einem Worker.
Einen Worker erstellen ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Einen Worker erstellen
Die Einheit für Hintergrundarbeit in WorkManager ist ein Worker. Sie definieren die Aufgabe, indem Sie eine Worker-Basisklasse ableiten und deren work-Methode überschreiben.
CoroutineWorker
Verwenden Sie für Kotlin CoroutineWorker. Die Methode doWork() ist eine suspend-Funktion. Dadurch können Sie andere Suspend-Funktionen aufrufen und auf natürliche Weise einen Hintergrund-Dispatcher verwenden.
class UploadWorker(
context: Context,
params: WorkerParameters
) : CoroutineWorker(context, params) {
override suspend fun doWork(): Result {
// background work here
return Result.success()
}
}Der Konstruktor
Jeder Worker erhält Context und WorkerParameters in seinem Konstruktor und übergibt sie an die Oberklasse. WorkManager instanziiert Ihren Worker für Sie; Sie rufen den Konstruktor niemals direkt auf.
doWork gibt ein Result zurück
doWork() muss ein Result zurückgeben, das das Ergebnis beschreibt. Es gibt drei Möglichkeiten.
Result.success()Result.retry()Result.failure()
Result.success
Geben Sie Result.success() zurück, wenn die Arbeit abgeschlossen wurde. Die Arbeit wird aus der Warteschlange entfernt. Sie können Ausgabedaten anhängen, die an verkettete Arbeit weitergegeben werden.
override suspend fun doWork(): Result {
uploadLogs()
return Result.success()
}Result.retry
Geben Sie bei einem vorübergehenden Fehler Result.retry() zurück, etwa bei einem zeitweiligen Netzwerkfehler. WorkManager führt den Worker später gemäß seiner Backoff-Richtlinie erneut aus.
override suspend fun doWork(): Result {
return try {
syncData()
Result.success()
} catch (e: IOException) {
Result.retry()
}
}Result.failure
Geben Sie bei einem dauerhaften Fehler Result.failure() zurück, wenn ein erneuter Versuch das Problem nicht beheben würde, etwa bei ungültigen Eingaben. Die Arbeit wird beendet und abhängige verkettete Arbeit wird nicht ausgeführt.
Eingabedaten lesen
Sie übergeben beim Einreihen kleine Eingaben über Data und lesen sie innerhalb des Workers mit inputData. Halten Sie die Daten klein; Data ist nicht für große Nutzdaten vorgesehen.
override suspend fun doWork(): Result {
val userId = inputData.getString("user_id") ?: return Result.failure()
sync(userId)
return Result.success()
}Ausgabedaten zurückgeben
Worker können in ihrem Ergebnis Data zurückgeben, das verkettete Worker als Eingabe erhalten. So übergeben Sie Ergebnisse zwischen den einzelnen Schritten.
val output = workDataOf("count" to 42)
return Result.success(output)Den richtigen Dispatcher verwenden
CoroutineWorker führt doWork() standardmäßig auf Dispatchers.Default aus. Wechseln Sie bei blockierenden I/O-Operationen mit withContext(Dispatchers.IO), damit der Standard-Pool nicht überlastet wird.
override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
readAndUploadFile()
Result.success()
}Worker eigenständig halten
Ein Worker kann lange nach seiner Planung in einem neuen Prozess ausgeführt werden. Verlassen Sie sich nicht auf den In-Memory-Zustand der App, sondern übergeben Sie alles Benötigte über Eingabedaten oder lesen Sie es aus einem persistenten Speicher.
Kurzer Test
Testen Sie Ihr Verständnis zum Erstellen eines Workers.
Zusammenfassung
Sie haben einen Worker erstellt:
- Leiten Sie
CoroutineWorkerab und überschreiben Sie das suspend-fähigedoWork() - Geben Sie
Result.success(),Result.retry()oderResult.failure()zurück - Lesen Sie
inputDataund geben Sie Ausgabe-Datazurück - Verwenden Sie
Dispatchers.IOfür blockierende Arbeit und halten Sie Worker eigenständig
Als Nächstes: Einschränkungen und Planung.
Häufig gestellte Fragen
Ist die Lektion „Einen Worker erstellen“ kostenlos?
Ja — der vollständige Text von „Einen Worker erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Einen Worker erstellen“?
Definieren Sie Hintergrundarbeit in einem Worker. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Einen Worker erstellen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Wann WorkManager verwendet wird
- Einen Worker erstellen
- Bedingungen und Zeitplanung
- Periodische und verkettete Arbeit