Warum wird WorkManager mehrmals gestartet, sobald meine App gestartet wird?

KotlinIsland

Ich habe eine App, in der ich einen WorkManager deklariert habe, und die überschriebene Funktion doWork () wird drei- oder viermal aufgerufen, sobald meine App gestartet wird, ohne dass das System sie jederzeit im Code starten muss ...

Ich habe überprüft, dass in der Anwendung kein Verweis auf den WorkManager erfolgt wäre. Es gibt nur eine in der App.kt-Datei (die Application () erweitert).

In App.kt:

class App : Application(){

companion object {
    var appSyncRepository = AppSyncRepository()
}
}

In AppSyncRepository.kt:

class AppSyncRepository {
}

class AppSyncRepositoryWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
override fun doWork(): Result {
    return Result.success()
}
}

Ich würde erwarten, dass der Worker nicht aufgerufen wird, da ich vorerst weder einen OneTimeWorkRequestBuilder noch einen PeriodicWorkRequestBuilder deklariert habe.

user11162572

Entschuldigung, ich habe nicht genug Ruf, um einen Kommentar abzugeben.

Haben Sie in Ihren Tests eine PeriodicWorkRequestBuilder-Anforderung festgelegt? Wenn ja, müssen Sie es abbrechen.

Als ersten Schritt würde ich überprüfen, was geplant ist.

void cancelJob(){
    WorkManager.getInstance(mContext).cancelAllWorkByTag(SYNC_WORK_JOB1);
    WorkManager.getInstance(mContext).cancelAllWork();
    Log.d(TAG, "Job cancelled!");
}

private boolean isWorkScheduled() {
WorkManager instance = WorkManager.getInstance(mContext);
    ListenableFuture<List<WorkInfo>> statuses = instance.getWorkInfosByTag(SYNC_WORK_JOB1);
    try {
        boolean running = false;
        List<WorkInfo> workInfoList = statuses.get();
        for (WorkInfo workInfo : workInfoList) {
            WorkInfo.State state = workInfo.getState();
            running = state == WorkInfo.State.RUNNING | state == WorkInfo.State.ENQUEUED;
        }
        return running;
    } catch (ExecutionException e) {
        e.printStackTrace();
        return false;
    } catch (InterruptedException e) {
        e.printStackTrace();
        return false;
    }
}

Oder Sie könnten in einem Terminalfenster laufen

adb shell dumpsys jobscheduler | grep -C 5 SyncWorkManagerService
adb shell dumpsys jobscheduler | grep -B 10 "Pending queue"

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Warum wird die print-Anweisung in setState ausgeführt, sobald die App gestartet wird?

Meine Flatter-App stürzt ab, sobald sie mit dem folgenden Fehler gestartet wird:

Warum meine App beendet wird, nachdem ich "OnPause" in einer "zxing"-App "Kotlin" gestartet habe

Warum wird meine JAR-Datei nicht per Doppelklick gestartet?

Spring Boot-Anwendung wird heruntergefahren, sobald sie gestartet wird

Meine Aktivität wird zweimal gestartet

Warum wird socket.on( ) von socket.io-client mehrmals gestartet?

Jquery wird gestartet, sobald die Seite geladen ist

Die SpringBoot-App wird mehrmals gestartet und vom Logstash getrennt

Warum wird mein Dienst zweimal gestartet?

Warum wird conhost.exe gestartet?

Warum wird dieser Thread nicht neu gestartet?

Android Broadcastreceiver, warum Popup gestartet wird

Warum wird IPython QtConsole nicht gestartet?

Warum wird mein Eingabehilfedienst nicht gestartet?

Was passiert, wenn ein Android-Dienst mehrmals gestartet wird?

Das Dienstabonnement wird mehrmals von OnInit [Angular 2] gestartet.

Warum erstellt Liquibase meine Tabelle nicht in Postgres, wenn Spring Boot Microservce gestartet wird?

Warum stürzt meine FinderSync-Erweiterung ab, bevor sie gestartet wird?

Warum verhindert Application Insights, dass meine Worker-Rolle gestartet wird?

Mit PyInstaller erstellte App wird langsam gestartet

Mit PyInstaller erstellte App wird langsam gestartet

Wie kann ich diese asynchrone Methode in meinen Xamarin-Formularen aufrufen, wenn meine App gestartet wird?

Meine WPF-App wird nicht mehr ausgeführt, wenn asynchrone Prozesse gestartet werden

Die Xamarin Android App stürzt ab, sobald sie auf einem ASUS-Gerät gestartet wird

hasClass wird nicht gestartet

ActiveMQ wird nicht gestartet

Webpack wird gestartet, Importfehler

SonarQube wird nicht gestartet

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv