2017-01-24 12 views
1

여러분, 안녕하세요. 알람 응용 프로그램을 만들고 있습니다. 다음은 removeAlarm 및 AlarmReceiver입니다. 나는 내 경보를 울려 울부 짖었다. 그러나이 시간이 지나면 벨소리가 켜지고 1 분 2 분 기다렸지 만 꺼지지 않았습니다. 그래서, 그걸 끄려면 어떻게해야합니까?알람 벨소리를 멈추는 방법은 무엇입니까?

public static void removeAlarm(Context context, long id){ 
    AlarmManager alarmManager; 
    PendingIntent pendingIntent; 
    alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent myIntent = new Intent(context, AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(context, (int) id, myIntent, 0); 
    if(alarmManager != null) 
     alarmManager.cancel(pendingIntent); 
} 

public class AlarmReceiver extends BroadcastReceiver { 
private Ringtone ringtone = null; 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context,"Alarm",Toast.LENGTH_LONG).show(); 
    Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
    ringtone = RingtoneManager.getRingtone(context, uri); 
    ringtone.play(); 
    Intent x = new Intent(context,AlarmDialog.class); 
    context.startActivity(x); 
} 
+1

당신이 ringtone.stop를 시도(); ? – Isaac

답변

0

지연 후 벨소리를 취소하려면, 당신은 ringtone.play() 후,이처럼 BroadcastReceiverHandler 작업을 추가 할 수 있습니다

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    ringtone.stop(); 
    } 
}, 1000 * 60); // runs stop() after 1 minute