Threading in RxWorker
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Wir bieten Interoperabilität zwischen WorkManager und RxJava. Um loszulegen,
Fügen Sie in Ihrer Gradle-Datei zusätzlich zu work-runtime
die Abhängigkeit work-rxjava3
ein.
Es gibt auch eine work-rxjava2
-Abhängigkeit, die stattdessen rxjava2 unterstützt.
Statt Worker
zu erweitern, sollten Sie dann RxWorker
erweitern. Zuletzt
RxWorker.createWork()
überschreiben
, um ein Single<Result>
-Objekt zurückzugeben, das den Result
Ihrer Ausführung angibt,
folgt:
Kotlin
class RxDownloadWorker(
context: Context,
params: WorkerParameters
) : RxWorker(context, params) {
override fun createWork(): Single<Result> {
return Observable.range(0, 100)
.flatMap { download("https://www.example.com") }
.toList()
.map { Result.success() }
}
}
Java
public class RxDownloadWorker extends RxWorker {
public RxDownloadWorker(Context context, WorkerParameters params) {
super(context, params);
}
@NonNull
@Override
public Single<Result> createWork() {
return Observable.range(0, 100)
.flatMap { download("https://www.example.com") }
.toList()
.map { Result.success() };
}
}
Beachten Sie, dass RxWorker.createWork()
im Hauptthread aufgerufen wird, aber die Rückgabe
-Wert wird standardmäßig für einen Hintergrundthread abonniert. Sie können RxWorker.getBackgroundScheduler()
überschreiben, um
einen Thread abonniert.
Wenn RxWorker
onStopped()
ist, wird das Abo entfernt, sodass
Sie müssen nicht gesondert mit Arbeitsunterbrechungen umgehen.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2024-08-22 (UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Benötigte Informationen nicht gefunden"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zu umständlich/zu viele Schritte"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nicht mehr aktuell"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem mit der Übersetzung"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem mit Beispielen/Code"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Sonstiges"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Leicht verständlich"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Mein Problem wurde gelöst"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Sonstiges"
}]
{"lastModified": "Zuletzt aktualisiert: 2024-08-22\u00a0(UTC)."}
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-08-22 (UTC)."]]