AlarmManager blockiert den Hauptgewinde
-
13-12-2019 - |
Frage
Ich habe einen AlarmManager implementiert, der einen Dienst anruft.Das Problem ist, dass ich, obwohl ich ihn in Asynktask starte, er blockiert den Hauptfaden.Dies ist die Quelle meiner Asynktask:
generasacodicetagpre.Ich muss es asynchron tun, weil es mein Hauptfaden blockiert.
Lösung
Es ist egal, dass Sie den Alarm in einer Asynktask einstellen.Der Alarm-Manager startet immer Ihren Service auf dem Hauptfaden, denn das funktioniert, so funktionieren Dienstleistungen.
Um Ihr Problem zu beheben, müssen Sie den Dienst ändern, den der Alarm anfängt, einen generationspflichtigen Code erstellen zu können.
Andere Tipps
Ich weiß, waren kein Linkfarm, aber CommonsGuy hat den WakeFulllintimentService
er ist explizite deckt es mit einem Alarm-Reversver ab.Funktioniert toll, ein Auschecken wert.Das wird Warteschlangen von Ihrem Alarmempfänger, arbeiten im Hintergrund und wecken Sie das Gerät auf, während Sie auf einem separaten Thread laufen.