2016-12-28 10 views
0

私は目覚まし時計を作りました。 私の問題は、アラームマネージャが停止しないということです。アラームマネージャーは再生を停止しません

アラームを設定するトグルボタンがありますが、オフ状態を押すと、アラームマネージャーは着信音の再生を停止しません。ここで

は私のコードです:私のAlarmReceiverクラスΙn

public void OnToggleClicked(View view){ 

    long time; 
    if (((ToggleButton) view).isChecked()){ 
     Toast.makeText(activity_mainnew.this, "ALARM ON", Toast.LENGTH_SHORT).show(); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getHour()); 
     calendar.set(Calendar.MINUTE, alarmTimePicker.getMinute()); 
     Intent intent = new Intent(this, AlarmReceiver.class); 
     pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
     alarmTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS); 

     time = (calendar.getTimeInMillis()-(calendar.getTimeInMillis()%60000)); 
     if(System.currentTimeMillis()>time){ 
      if (calendar.AM_PM == 0) 
       time = time + (1000*60*60*12); 
      else 
       time = time + (1000*60*60*24); 
      } 
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 10000, pendingIntent); 
     } else { 
      alarmManager.cancel(pendingIntent); 
      pendingIntent.cancel(); 

      Toast.makeText(activity_mainnew.this, "ALARM OFF", Toast.LENGTH_SHORT).show(); 
     } 
    } 

私が持っている:

public class AlarmReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 

     if (alarmUri == null) { 
      alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     } 

     Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri); 
     ringtone.play(); 
    } 
} 
+1

ワンダー**繰り返し理由**アラームは繰り返し続けますか? –

答えて

0

あなたはpendingIntentを初期化しませんでした、

...else 
    { Intent intent = new Intent(this, AlarmReceive.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     alarmManager.cancel(pendingIntent); 
     pendingIntent.cancel(); 
    }.... 
関連する問題