Start der Aktivität vom Dienst dauert zu lange

7

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 ..

%Vor%

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

Hinweis

Wenn ich back button drücke, startet es automatisch, 0 Verzögerung, aber ich schaue auf die home button .

    
Stuart2041 05.11.2017, 16:59
quelle

3 Antworten

5

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

    
user8537567 07.11.2017 19:21
quelle
4

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%     
madhu sudhan 14.11.2017 08:56
quelle
0

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.

    
Rahul Shukla 14.11.2017 17:48
quelle