Android alarm setting with specific date

前端 未结 4 2262
刺人心
刺人心 2020-12-11 09:17

I wan to set alarm with notification at specific date. Then I am using AmarmManager with NotificationManager currently. When I set selected date from dateDialog, the alarm i

相关标签:
4条回答
  • 2020-12-11 10:04
    cal_alarm.setTime(dat);
            cal_alarm.set(Calendar.MONTH,3);
            cal_alarm.set(Calendar.YEAR,2012);
            cal_alarm.set(Calendar.DAY_OF_MONTH,4);
            cal_alarm.set(Calendar.HOUR_OF_DAY,19);//set the alarm time
            cal_alarm.set(Calendar.MINUTE, 15);
            cal_alarm.set(Calendar.SECOND,0);
    
    
            if(cal_alarm.before(cal_now)){//if its in the past increment
                cal_alarm.add(Calendar.DATE,1);
            }
    
            Intent intent = new Intent(AlarmManagerTestActivity.this,
                    AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                AlarmManagerTestActivity.this, 0, intent, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    
        alarmManager.set(AlarmManager.RTC_WAKEUP, cal_alarm.getTimeInMillis(), pendingIntent);  
    }
    

    This may help you

    0 讨论(0)
  • 2020-12-11 10:08

    Hey this is how to set alarm on android AlarmManager to spesific date (android alarmmanager set alarm on date) I have been searching all over for this. pay attention to the value of the month!!

    Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
    //cal.add(Calendar.SECOND, 10);
    
    cal.set(Calendar.DATE,19);  //1-31
    cal.set(Calendar.MONTH,Calendar.DECEMBER);  //first month is 0!!! January is zero!!!
    cal.set(Calendar.YEAR,2012);//year...
    
    cal.set(Calendar.HOUR_OF_DAY, 16);  //HOUR
    cal.set(Calendar.MINUTE, 39);       //MIN
    cal.set(Calendar.SECOND, 10);       //SEC
    
    
    // Create a new PendingIntent and add it to the AlarmManager
    Intent intent = new Intent(MainActivity.this, alarmAct.class);
    PendingIntent pendingIntent = PendingIntent.getService(MainActivity.this, 0,intent, 0);
    
    //or if you start an Activity
    //PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0,intent, 0);
    
    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
    
    0 讨论(0)
  • 2020-12-11 10:09

    If you want to play alarm for particular date of months suppose you want to play alarm on 11-june-2012 then you should specify like this but June is 6 month then you should specify 5 in Calender.Month.

    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.MONTH,5);
    cal.set(Calendar.YEAR,2012);
    cal.set(Calendar.DAY_OF_MONTH,11);
    
    cal.set(Calendar.HOUR_OF_DAY,16);
    cal.set(Calendar.MINUTE,10);
    cal.set(Calendar.SECOND,0);
    
    Intent _myIntent = new Intent(getApplicationContext(), ReceiverClass.class);
    PendingIntent _myPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 123, _myIntent, PendingIntent.FLAG_UPDATE_CURRENT|  Intent.FILL_IN_DATA);
    AlarmManager _myAlarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
    //_myAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), _myPendingIntent);
    _myAlarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), _myPendingIntent);  
    
    0 讨论(0)
  • 2020-12-11 10:11

    You should call public void setRepeating (int type, long triggerAtTime, long interval, PendingIntent operation)(see here) to repeat the alarm. For example, you want to fire the alarm on 9:00 am every day, you can do :

    Calendar c=Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, 9);
    c.set(Calendar.MINUTE, 0);
    setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
    

    Also,set the last parameter to 0 when initilazing the PendingIntent.

    PendingIntent pendingIntent = PendingIntent.getBroadcast(fridgeDetails.this, 
                            0, myIntent, 0);
    
    0 讨论(0)
提交回复
热议问题