0Pricing
Android Academy · Lektion

Bedingungen und Zeitplanung

Führen Sie Arbeit unter den richtigen Bedingungen aus.

Bedingungen und Zeitplanung ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Einschränkungen und Planung

Ein Worker definiert, was zu tun ist. Ein WorkRequest definiert, wann und unter welchen Bedingungen es ausgeführt wird. Sie erstellen eine Anfrage, fügen Einschränkungen hinzu und reihen sie ein.

Was Einschränkungen sind

Einschränkungen sind Bedingungen, die erfüllt sein müssen, bevor Ihre Arbeit ausgeführt wird, etwa eine bestehende Netzwerkverbindung oder eine angeschlossene Stromversorgung. WorkManager wartet, bis sie erfüllt sind.

Einschränkungen erstellen

Verwenden Sie Constraints.Builder, um Ihre Anforderungen festzulegen.

val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.UNMETERED)
    .setRequiresCharging(true)
    .build()

Häufige Arten von Einschränkungen

Häufig verwendete Einschränkungen sind:

  • setRequiredNetworkType (CONNECTED, UNMETERED usw.)
  • setRequiresCharging
  • setRequiresBatteryNotLow
  • setRequiresDeviceIdle
  • setRequiresStorageNotLow

Eine OneTimeWorkRequest erstellen

Verwenden Sie für Arbeit, die einmalig ausgeführt wird, OneTimeWorkRequestBuilder, parametrisiert mit Ihrer Worker-Klasse, und fügen Sie die Einschränkungen hinzu.

val request = OneTimeWorkRequestBuilder<UploadWorker>()
    .setConstraints(constraints)
    .build()

Eingabedaten übergeben

Fügen Sie der Anfrage mit setInputData Eingabedaten hinzu. Der Worker liest sie über inputData.

val request = OneTimeWorkRequestBuilder<UploadWorker>()
    .setInputData(workDataOf("user_id" to "42"))
    .setConstraints(constraints)
    .build()

Arbeit einreihen

Rufen Sie die Instanz von WorkManager ab und rufen Sie enqueue auf. WorkManager speichert die Anfrage dauerhaft und führt sie aus, sobald die Einschränkungen erfüllt sind.

WorkManager.getInstance(context).enqueue(request)

Backoff-Richtlinie

Wenn ein Worker retry() zurückgibt, wartet WorkManager vor dem nächsten Versuch. Konfigurieren Sie die Strategie mit setBackoffCriteria und wählen Sie einen linearen oder exponentiellen Backoff.

val request = OneTimeWorkRequestBuilder<UploadWorker>()
    .setBackoffCriteria(
        BackoffPolicy.EXPONENTIAL,
        10, TimeUnit.SECONDS
    )
    .build()

Eindeutige Arbeit

Um doppelte Aufgabenplanung zu vermeiden, verwenden Sie enqueueUniqueWork mit einem Namen und einer Konfliktrichtlinie (KEEP, REPLACE oder APPEND).

WorkManager.getInstance(context).enqueueUniqueWork(
    "sync_job",
    ExistingWorkPolicy.KEEP,
    request
)

Arbeitsstatus beobachten

Sie können den Status einer Anfrage (ENQUEUED, RUNNING, SUCCEEDED, FAILED) über getWorkInfoByIdFlow oder LiveData beobachten. Das ist beispielsweise nützlich, um den Fortschritt in der Benutzeroberfläche anzuzeigen.

WorkManager.getInstance(context)
    .getWorkInfoByIdFlow(request.id)
    .collect { info -> /* react to info.state */ }

Tags hinzufügen

Versehen Sie Anfragen mit addTag mit Tags, damit Sie später Gruppen zusammengehöriger Aufgaben anhand des Tags abfragen oder abbrechen können, etwa indem Sie alle "upload"-Aufgaben auf einmal abbrechen.

Kurzer Test

Testen Sie Ihr Verständnis von Einschränkungen und Planung.

Zusammenfassung

Sie haben Arbeit mit Einschränkungen geplant:

  • Constraints.Builder legt Bedingungen wie Netzwerkverbindung und Laden fest
  • OneTimeWorkRequestBuilder erstellt die Anfrage
  • enqueue / enqueueUniqueWork übermittelt sie
  • Konfigurieren Sie den Backoff, beobachten Sie den Status und versehen Sie die Arbeit mit Tags

Als Nächstes: periodische und verkettete Arbeit.

Häufig gestellte Fragen

Ist die Lektion „Bedingungen und Zeitplanung“ kostenlos?

Ja — der vollständige Text von „Bedingungen und Zeitplanung“ 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 „Bedingungen und Zeitplanung“?

Führen Sie Arbeit unter den richtigen Bedingungen aus. 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 3 von 4.

Wie lange dauert die Lektion „Bedingungen und Zeitplanung“?

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

  1. Wann WorkManager verwendet wird
  2. Einen Worker erstellen
  3. Bedingungen und Zeitplanung
  4. Periodische und verkettete Arbeit
← Zurück zu Android Academy