2017-10-08 1 views
1

Mein Alarmcode funktioniert gut als Standard-Klingelton ist gut auf Zeit. Aber nicht in der Lage, den Alarmton zu stoppen. In Empfängerklasse habe ich den folgenden Code eingefügt.Wie Alarmton pragmatisch in android Studio zu stoppen

try { 
     Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
     Ringtone r = RingtoneManager.getRingtone(context, notification); 
     r.play(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

I eingefügt auch den Code für den Alarm in Hauptklasse, die auch mit dem Code gut funktioniert

alarmMgr.cancel(pendingIntent); 

Aber sobald der Standard-Klingelton zu spielen beginnen und Benutzer wollen dies durch Anschlag Anschlag Knopf dann funktioniert es nicht. In Hauptklasse mit stopbutton.setOnClickListener I eingefügt, um den folgenden Code

Intent intent = new Intent(getBaseContext(), Reciver.class); 
stopService(intent); 

Ich denke, es durch r.stop stoppen sein kann(); aber wie soll ich es in Stop-Taste verwenden.

+0

Kein genau, Wenn ich nicht falsch bin, setzen Sie die Stopp-Taste auf Ihrer eigenen UI, aber es funktioniert nicht, bin ich richtig? – QuokMoon

+0

Ich habe drei Button im Hauptlayout mit der Hauptklasse verbunden. Start-Taste rufen Sie den Alarm-Manager und Weck-Receiver-Klasse (r.play ist hier in dieser Klasse) und funktioniert gut. Abbrechen-Taste zum Abbrechen des Alarms. jetzt ist der dritte Knopf der Stopknopf. – Nim

Antwort

0

Erstellen Sie eine globale Instanz von Ringtone, und klicken Sie bei Verwendung der Schaltfläche r.stop() auf link, um den Betrieb im Betrieb durchzuführen. Lass es mich wissen, wenn ich die Frage richtig verstanden habe.

+0

Ich habe die Codierung nach Ihrem Vorschlag und es hat funktioniert. Danke sehr, Bruder. – Nim

+0

Wenn es hilfreich ist, dann bitte upvote, es wird auch für andere hilfreich –

+0

Wie es geht? Sollte ich den oberen Pfeil wählen? – Nim

0

Ein Broadcast Intent wird registriert, während Sie den Alarm planen, aber um einen Abbruch zu gewährleisten, müssen Sie eine andere Absicht registrieren, die das Ereignis vom System abbrechen würde.

Schauen Sie sich ein Stück Code an, der während eines Abbruch-Ereignisses in Ordnung ist.

Verwandte Themen