2016-04-10 12 views
0

Ich weiß, wie geplante Benachrichtigung in Android erstellen mithilfe von Alarmdienst, aber was ich jetzt tun möchte, ist es, Benachrichtigungen häufiger erstellen.Erstellen Erinnerung Erinnerung für Android

Zum Beispiel möchte ich die Benachrichtigung für 8 Stunden im Abstand von 20 Minuten drücken. In diesem Fall ist es effizient zu verwenden Alarmdienst oder Timertask wird die bessere Wahl sein?

Egal welche Methode, ich möchte es in der Mitte abbrechen können. Vielen Dank.

Antwort

0

Timertask startet neuen Thread und arbeitet darin. Wenn Ihre App also im Hintergrund funktioniert und Ihre App von Android geschlossen wird, erhalten Sie keine Benachrichtigung. AlarmManager bietet Zugriff auf die Systemalarmdienste. Wenn ein Alarm ausgelöst wird, wird der Intent, der für ihn registriert wurde, vom System gesendet und startet automatisch die Zielanwendung, wenn sie nicht bereits ausgeführt wird. (link). So wird es Ihre App starten, selbst wenn es geschlossen war. Und Sie müssen verstehen, wie Ihre App mit diesen Benachrichtigungen funktioniert. Wenn es nur funktioniert, während der Benutzer in der App arbeitet, können Sie timertask verwenden, aber wenn es im Hintergrund arbeiten muss (zum Beispiel wenn Sie eine Benachrichtigung erhalten, auch wenn der Benutzer nicht mit einem Telefon/Tablet arbeitet), wird alarmmanager besser verwendet . Ich hoffe es hilft.

+0

Oic. Wenn ich sagen möchte, dass ich den Alarm für 1 Stunde mit einem Intervall von 5 Minuten einstellen möchte, kann ich ihn mit nur einem Alarmmanager einstellen? und wie wäre es, es zu stornieren? Kann ich es gleichzeitig abbrechen? – SamTew

+0

Abbrechen alarmmanager http://StackOverflow.com/a/3330782/2004305 Und wenn Sie alle 5 min eine Benachrichtigung erhalten können, können Sie setRepeating verwenden, um Wiederholungsintervall zu beschreiben, um Benachrichtigung zu erhalten http://developer.android.com/reference /android/app/AlarmManager.html#setRepeating(int, lang, lang, android.app.PendingIntent) alarmMgr.setInexactRepeating (AlarmManager.ELAPSED_REALTIME_WAKEUP, FIVE_MINUTES, FIVE_MINUTES, alarmIntent); – Dima

Verwandte Themen