2017-03-10 2 views
-2

Ich habe eine Anwendung mit Android native gemacht. Ich verwende AlarmManager, um alle 1-Minuten-Track-Daten zu erhalten.Wie man einen Alarm für jede 1 Minute einstellt, für das gleiche Sagen nur in android?

AlarmManager alarmManager=(AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); 

Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),100000,pendingIntent); 

Aber ich möchte, dass es auf bestimmte Zeit wie heute 12 P.M. oder wann immer ich will.

Wie kann ich das erreichen, indem ich einen anderen AlarmManager Service mache, oder gibt es eine andere Option dafür?

+1

Verwendung Service, der laufenden Alarm löschen. Dafür müssen Sie eine feste ID mit ausstehender Absicht festlegen. und aus dem Service stornieren, dass ausstehende Absicht –

+0

Wie setzen wir feste ID zu ausstehenden Absicht. und wenn ich es von anderen AlarmManger Service einstellen möchte, ist es möglich? –

+1

diese Zeile, PendingIntent pendingIntent = PendingIntent.getBroadcast (getApplicationContext(), "ID_OF_PENDING", intent, 0); . Jetzt von überall aus schreibe über die Zeile mit Ausnahme der letzten Zeile und setze alarmManager.cancel (pendingIntent); mit gleicher ID –

Antwort

1

Überprüfen Sie einfach in Service Alarm gestartet, dass aktuelle Zeit früh als spezifische Zeit

if (isTimeExpired) { 
    AlarmManager alarmManager=(AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);  
    alarmManager.cancel(pendingIntent); 
} 
+0

ja das wird funktionieren. Danke Kumpel.. –

Verwandte Themen