Android - how to set an alarm to a specific date

后端 未结 3 732
故里飘歌
故里飘歌 2020-11-30 01:08

I have seen a lot of tutorials and been trying for 2 hours now , though something is still wrong. I am very nervous now :) I want to set an alarm e.g. to 16:25 to go off, bu

相关标签:
3条回答
  • 2020-11-30 01:59

    Usually you shouldn't obtain Calendar like you do, there is Calendar.getInstance() method for that:

    Calendar cal = Calendar.getInstance();
    

    That gives you a calendar with all fields set to current date, then just:

    cal.set(Calendar.HOUR_OF_DAY, 16);
    cal.set(Calendar.MINUTE, 25);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
    
    0 讨论(0)
  • 2020-11-30 02:00
    package your.pack.name;
    
    import java.util.Calendar;
    
    import android.app.Activity;
    import android.app.AlarmManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    
    public class AlarmActivity extends Activity {
        /** Called when the activity is first created. */
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            Calendar cal = Calendar.getInstance();
    
            cal.setTimeInMillis(System.currentTimeMillis());
            cal.clear();
            cal.set(2012,2,8,18,16);
    
            AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
            Intent intent = new Intent(this, AlarmReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
           // cal.add(Calendar.SECOND, 5);
            alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
    
    
        }
    }
    
    0 讨论(0)
  • 2020-11-30 02:06

    The following code works perfectly for alarm. The date and time i mentioned here is : 2012- June- 28, 11:20:00 AM. And the most important thing is, month is specified from 0 t0 11 only. Means June should be specified by 5.

            AlarmManager objAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);              
            Calendar objCalendar = Calendar.getInstance();
            objCalendar.set(Calendar.YEAR, 2012);
            //objCalendar.set(Calendar.YEAR, objCalendar.get(Calendar.YEAR));
            objCalendar.set(Calendar.MONTH, 5);
            objCalendar.set(Calendar.DAY_OF_MONTH, 28);
            objCalendar.set(Calendar.HOUR_OF_DAY, 11);
            objCalendar.set(Calendar.MINUTE, 20);
            objCalendar.set(Calendar.SECOND, 0);
            objCalendar.set(Calendar.MILLISECOND, 0);
            objCalendar.set(Calendar.AM_PM, Calendar.AM);         
    
            Intent alamShowIntent = new Intent(this,AlarmActivity.class);
            PendingIntent alarmPendingIntent = PendingIntent.getActivity(this, 0,alamShowIntent,0 );
    
            objAlarmManager.set(AlarmManager.RTC_WAKEUP,objCalendar.getTimeInMillis(), alarmPendingIntent);
    
    0 讨论(0)
提交回复
热议问题