Fügen Sie die .java-Datei in Ihr Projekt ein. Z.B. /app/src/main/java/com/alex/app/service/
Wenn Sie einen bestimmten JavaScript-Code ausführen möchten, ohne eine ReactRootView
anzuzeigen, können Sie Ihre benutzerdefinierte HeadlessJsTaskService
verwenden.
Um die Aufgabe zu starten, rufen Sie einfach startService(new Intent(this, MyTaskService.class));
zum Beispiel von einem anderen Dienst oder sogar von einer Aktivität.
Hinweis: Ich habe die getTaskConfig()
Methode des Tutorials, so erlaubt es leer Extras:
@Override
@Nullable
protected HeadlessJsTaskConfig getTaskConfig(Intent intent) {
Bundle extras = intent.getExtras();
WritableMap data = extras != null ? Arguments.fromBundle(extras) : null;
return new HeadlessJsTaskConfig(
"SomeTaskName",
data,
5000);
}
Oder zumindest verändern, so dass es nur leise nicht fehl, wenn keine Extras vorhanden sind.
Ich löse dies auch im Moment. Hast du schon Fortschritte gemacht? Ich denke, dass Sie die Aufgabe mit dieser https://facebook.github.io/react-native/docs/appregistry.html#startheadlesstask –
Nein. Ich habe ein natives Modul mit einem Hintergrund-Service für Android implementiert. Das war ziemlich geradlinig. Ich werde es irgendwann nochmal versuchen und hier meine Ergebnisse posten. – Alex
Möchten Sie diesen Android-Dienst teilen? Weil ich etwas ähnliches gemacht habe: D –