I want to make a program that calls an intent in a specific time, at 8 o'clock for breakfast, 1 o'clock for lunch, and half past six for dinner for every day.
How can I do that? This is because if I use AlarmManager.INTERVAL_DAY / 3
, it cannot give the specific time.
Or is there any other class that I can use ?
Here's my code:
package com.makansehat;
import java.util.Calendar;
import android.app.*;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
// import android.widget.EditText;
import android.widget.Toast;
/**
* @author Prabu
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void startAlert(View view) {
Calendar skr = Calendar.getInstance();
pagi.set(Calendar.HOUR_OF_DAY, 8);
pagi.set(Calendar.MINUTE, 53);
Calendar siang = Calendar.getInstance();
siang.set(Calendar.HOUR_OF_DAY, 8);
siang.set(Calendar.MINUTE, 55);
Calendar malam = Calendar.getInstance();
malam.set(Calendar.HOUR_OF_DAY, 8);
malam.set(Calendar.MINUTE, 59);
// EditText text = (EditText) findViewById(R.id.time);
// int i = Integer.parseInt(text.getText().toString());
Intent intent = new Intent(getApplicationContext(), MyBroadcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, pagi.getTimeInMillis(), siang.getTimeInMillis(), pi);
}
}
You should create 3 alarms:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, pagi.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, siang.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, malam.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);