2010-11-29 13 views
2

ich habe ein Widget, das auf BATTERY_CHANGED Ereignis zu hören ist, da dieses Ereignis geschützt ist und nicht aus dem Manifest deklariert werden kann, erstellen Sie einen neuen BroadcastReceiver aus dem Anwendungskonstruktor:Widget BroadcastReceiver lebendig halten, auch wenn nicht aus Manifest

Dann rufe ich vom Empfänger eine statische Methode des AppWidgetProvider, die das Widget tatsächlich mit RemoteViews aktualisieren. Alles funktioniert fehlerfrei bis 1 Stunde, nach dieser Zeit verschwindet mein Empfänger und das Widget wird nicht mehr aktualisiert. Ich teste dies auf einem Droid mit 2.2.1 Firmware-

Was mache ich falsch? Ist dies der richtige Weg, um das Widget zu aktualisieren (ich brauche nur dieses Ereignis, damit ich keinen Dienst haben möchte, wenn es nicht benötigt wird). Sollte ich mit einem AlarmManager von Zeit zu Zeit sicher sein, dass mein Empfänger noch da ist? Ich kann das machen?

Danke.

Antwort

0

Ich habe keine Ahnung, warum Ihr Empfänger nach einer Stunde verloren gegangen ist, aber was ist mit der Verwendung der AlarmManager, um regelmäßig zu überprüfen, ob es noch da ist? So können Sie es erneut registrieren, wenn es verloren gegangen ist.

+1

Ja, das ist die Lösung, die ich bisher implementiert habe, um dies zu vermeiden, aber ich brauche einen 4-5 Minuten-Timer, um dies zu tun und es ist nicht so sauber, weil es auch wenn der Widget-Empfänger noch läuft, war ich hoffentlich in einer besseren Lösung, danke. – JohnUopini