Search code examples
androidandroid-alarmsandroid-calendar

Android : Calculate time to set reminder


I am developing an application. In which i am setting reminders in device calendar. I am setting multiple reminders in my application by calling the addReminder method from for() loop. The code to set reminders is as follows.

private void addReminder(int statrYear, int startMonth, int startDay, int startHour, int startMinut, String title){
    // Convert start of begin time of reminder in milliseconds.
    Calendar beginTime = Calendar.getInstance();
    beginTime.set(statrYear, startMonth, startDay, startHour, startMinut);
    long startMillis = beginTime.getTimeInMillis();

    // String to access default google calendar of device for Event setting.
    String eventUriString = "content://com.android.calendar/events";

    // Creation of Event.
    ContentValues eventValues = new ContentValues();
    // Set calendar as 1 for default calendar.
    eventValues.put(Events.CALENDAR_ID, 1);
    // Set title as user define.
    eventValues.put(Events.TITLE, title);
    // Set description as user define.
    eventValues.put(Events.DESCRIPTION, "MYApp");
    // Set location as user define.
    eventValues.put(Events.EVENT_TIMEZONE, "India");
    // Set start time as system time or time converted in milliseconds.
    eventValues.put(Events.DTSTART, startMillis);
    // Set status of event as 1.
    eventValues.put("eventStatus", 1);
    // Set visibility of event as 3 (public).
    eventValues.put("visibility", 3);
    // Set transparency as 0. No other app seen through reminder.
    eventValues.put("transparency", 0);
    // Set alarm as 1. Ringing.
    eventValues.put(Events.HAS_ALARM, 1);

    // Set Event in calendar.
    Uri eventUri = getContentResolver().insert(Uri.parse(eventUriString), eventValues);
    // Getting ID of event in Long.
    long eventID = Long.parseLong(eventUri.getLastPathSegment());

    /***************** Event: Reminder(with alert) Adding reminder to event *******************/
    // String to access default google calendar of device for reminder setting.
    String reminderUriString = "content://com.android.calendar/reminders";      
    ContentValues reminderValues = new ContentValues();

    // Set reminder on Event ID.
    reminderValues.put("event_id", eventID);
    // Set reminder minute before.
    reminderValues.put("minutes", 1);
    // Set method of reminder
    reminderValues.put("method", 1);        

    @SuppressWarnings("unused")
    //Setting reminder in calendar on Event.
    Uri reminderUri = getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
}

And the for loop which is calling the above method is :

for(int i=0; i<numberOfReminder; i++){
    addReminder(statrYear, startMonth, startDay, startHour, startMinut, title);
}

Now my need is :

I want to calculate the time to set one reminder in calendar in seconds. And total time required to set all reminders, the total number of reminders are given at run time.

So what should i do to calculate the time of setting one and many number of reminders in seconds or Millie seconds.


Solution

  • There are several solutions to this:

    1. Use Log information.
    2. Measure the time like this:

      long start = System.currentTimeMillis();

      The setting of the reminders

      long end = System.currentTimeMillis(); //or start = start - System.currentTimeMillis();

      Then just get end - start = ? *Note that this is in milliseconds, so you need to divide it by 1000 to get the seconds count.

    Cheers