2017-08-24 27 views
0

我想在每天上午10:45设置报警,现在在这个代码问题是,setRepeat()提供的间隔不工作,如果我把5 * 1000即5秒also.Help我想在每天的特定时间设置闹钟。我已经写这个代码将这个工作的第二天也。预先感谢你

public void SetAlarm() 
{ 

    BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override public void onReceive(Context context, Intent _) 
     { 
      Toast.makeText(context, "hi", Toast.LENGTH_SHORT).show(); 
      tex.setText(s[i+1]); 
      i++; 

      Notification.Builder n = new Notification.Builder(context) 
        .setContentTitle("Today's Quote") 
        .setContentText(tex.getText()) 
        .setSmallIcon(R.drawable.ic_lightbulb_outline_black_24dp) 
        .setContentIntent(PendingIntent.getActivity(context,0,new Intent(""),0)) 
        .setSound(uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) 
        .setAutoCancel(true); 


      NotificationManager notificationManager = 
        (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); 

      notificationManager.notify(1, n.build()); 

      context.unregisterReceiver(this); // this == BroadcastReceiver, not Activity 
     } 
    }; 

    this.registerReceiver(receiver, new IntentFilter("com.blah.blah.somemessage")); 

    PendingIntent pintent = PendingIntent.getBroadcast(this, 0, new Intent("com.blah.blah.somemessage"), 0); 
    AlarmManager manager = (AlarmManager)(this.getSystemService(Context.ALARM_SERVICE)); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.HOUR_OF_DAY, 10); 
    calendar.set(Calendar.MINUTE, 45); 
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP,Calendar.getInstance().getTimeInMillis()+AlarmManager.INTERVAL_FIFTEEN_MINUTES,AlarmManager.INTERVAL_DAY, pintent); 
} 

1,本会触发报警时间为11:00第一 2.将它触发一个报警日常生活。

回答

0

使用

manager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime, 24 * 60 * 60 * 1000, pi); 

代替

manager.setInexactRepeating(AlarmManager.RTC_WAKEUP,Calendar.getInstance().getTimeInMillis()+AlarmManager.INTERVAL_FIFTEEN_MINUTES,AlarmManager.INTERVAL_DAY, pintent); 
+0

我用manager.setRepeating(AlarmManager.RTC_WAKEUP,alarmTime,5 * 60 * 1000,PI);检查5分钟后是否发出警报,但没有。 –

相关问题