2015-12-04 26 views
1

我已经设置了一个闹钟管理器,每天中午都会关闭并发送通知,并且除了一部分以外,其工作完美。当我第一次打开该应用程序时,它会立即发出通知,无论时间如何。开始发送Android通知

Intent myIntent = new Intent(arg0, NotificationService.class); 
    myIntent.putExtra("compDate", tti.getEvents()[0][1]); 
    AlarmManager alarmManager = (AlarmManager)arg0.getSystemService(Context.ALARM_SERVICE); 
    PendingIntent pendingIntent = PendingIntent.getService(arg0, 0, myIntent, 0); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.HOUR, 12); 
    calendar.set(Calendar.AM_PM, Calendar.AM); 
    calendar.set(Calendar.DAY_OF_MONTH, 1); 

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); 

该方法是通过这段代码在onCreate方法

int f = preferences.getInt("numberOfLaunches", 1); 

    if(f < 2){ 
     alarmMethod(); 
     f++; 
     editor.putInt("numberOfLaunches", f); 
     editor.apply(); 
    } 

即当被调用它的唯一时间被调用

+0

发布更多验证码。 –

回答

0

好的感谢这个问题:Android alarm sets off immediately和Kuffs的回答,我添加了这段代码,它的工作就像一个魅力。

Date dat = new Date(); 
    Calendar cal_alarm = Calendar.getInstance(); 
    Calendar cal_now = Calendar.getInstance(); 
    cal_now.setTime(dat); 
    cal_alarm.setTime(dat); 
    cal_alarm.set(Calendar.HOUR_OF_DAY, 12); 
    cal_alarm.set(Calendar.MINUTE, 0); 
    cal_alarm.set(Calendar.SECOND, 0); 

    if(cal_alarm.before(cal_now)){ 
     cal_alarm.add(Calendar.DATE,1); 
    }