Ich habe eine Service
, die, wenn eine Funktion mir true
gibt, eine neue Activity
startet, aber es dauert 5 Sekunden ...
Ich habe darüber gelesen issue
, und ich habe am StackOverflow
dieses Beispiel gefunden zu " vermeide "diesen Fehler ..
aber leider startet das Activity
nicht schneller, ich muss nicht inmediate sein (besser, wenn es möglich ist), aber ich möchte nicht +5 Sekunden warten, um das neue Activity
zu starten, Kennst du einen Trick, um dies zu vermeiden?
Ich benutze PendingIntent
, weil ich den Typen gefunden habe, der gesagt hat, dass es dieses Problem lösen sollte:
Starten einer Aktivität von ein Dienst, nachdem die HOME-Taste ohne die 5 Sekunden Verzögerung gedrückt wurde
Wenn ich back button
drücke, startet es automatisch, 0 Verzögerung, aber ich schaue auf die home button
.
Ich kann noch nicht überall kommentieren, deshalb stelle ich diese Lösung eines ähnlichen Problems als Antwort
Nach vielem Graben, fand die Ursache des Problems. Anscheinend Es ist kein Fehler, es ist eine Funktion, die Dienste oder nicht erlaubt BroadcastReceivers starten Aktivitäten für bis zu 5 Sekunden nach Hause Taste gedrückt. Keine einfache Möglichkeit, dies zu überwinden.
Weitere Infos hier: Ссылка
Ich habe die Aktivität durch ein Fenster ersetzt, das zum Fenstermanager von hinzugefügt wurde der laufende Dienst. Dies verursacht keine Verzögerung.
Quelllink Stackoverflow
Erstens können wir keine UI-bezogenen Dinge im Dienst aktualisieren, weder Aktivitäten aufrufen noch irgendwelche UI-Elemente aktualisieren. Das gleiche Problem habe ich auch gehabt.
Dann habe ich die EventBus -Bibliothek verwendet, um UI-Elemente vom Dienst zu kommunizieren. Unten ist das Beispielbeispiel
%Vor%Verwenden Sie den folgenden Code, um das ausgelöste Ereignis zu beobachten ... entweder in Aktivität / Fragment
%Vor%Ich habe mit dem PendingIntent-Ansatz getestet und konnte nichts falsch finden. Das scheint gut zu funktionieren. Als Referenz, hier ist, was ich an meinem Ende versuchte:
%Vor%Aktivitätscode:
%Vor%Sie können den gleichen Code an Ihrem Ende ausprobieren. Vielleicht kann es helfen.
Tags und Links android service android-activity android-intent