Ich habe einen Hintergrunddienst, der innerhalb einer Transaktion einmal täglich schwer belastet wird. Wenn der Benutzer die App zu diesem Zeitpunkt startet, möchte ich, dass sie bis zum Ende fest sitzt (ca. 10 Sekunden oder so). Was ist der beste Weg, dies bei allen Aktivitäten zu tun? Überprüfen Sie, ob der Dienst in der Funktion "onResume" für jede Aktivität ausgeführt wird. Und woher wissen wir, wann es fertig ist? Lokale Übertragungen, die ich rate ...Der beste Weg zum Einfrieren und zur Anwendung, während die Datenbank einige schwere Hintergrundarbeit leistet?
Best Practices jemand?
UPDATE: Ich habe es geschafft, "onResume" zu stoppen, bis mein Service fertig ist. Das Problem ist, dass der Benutzer bis dahin nur einen leeren Bildschirm sieht. Ich habe Progressdialogs und normale Dialoge ausprobiert, während onResume pausiert ist. Aber alle werden nur angezeigt, wenn onResume zurückkehrt und das den Zweck vereitelt. Mit anderen Worten, macht Fortschritte Dialog nicht "Show" unmittelbar nach "show()" genannt wird :(
Ja, ich habe beschlossen, den Bildschirm nur zu verlassen, wenn der Benutzer die App startet, wenn der Dienst beschäftigt ist! Leider scheint eine "Toast" -Nachricht nicht zu funktionieren, wenn ich finish() aufgerufen habe: | –