cuando habilita la alarma, debe llamar al administrador de alarmas incorporado y usar alarmmanager.set para establecer la hora de la alarma en el administrador. Una vez que se da el tiempo de alarma (en milisegundos) que el gestor de alarma se enviará el mensaje y se puede retrive el mensaje a través de clases receptor
//creating and assigning value to alarm manager class
Intent AlarmIntent = new Intent(MainActivity.this, AlarmReciever.class);
AlarmManager AlmMgr = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent Sender = PendingIntent.getBroadcast(MainActivity.this, 0, AlarmIntent, 0);
AlmMgr.set(AlarmManager.RTC_WAKEUP, Alarm.getTimeInMillis(), Sender);
Para que recibe la alarma que tiene que hacer una nueva clase que se extiende receptor, donde en onrecieve puede establecer la intención de la actividad a la que desea llamar en tiempo de alarma, también puede proporcionar una notificación.
public class AlarmReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{ //Build pending intent from calling information to display Notification
PendingIntent Sender = PendingIntent.getBroadcast(context, 0, intent, 0);
NotificationManager manager = (NotificationManager)context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
Notification noti = new Notification(android.R.drawable.stat_notify_more, "Wake up alarm", System.currentTimeMillis());
noti.setLatestEventInfo(context, "My Alarm", "WAKE UP...!!!", Sender);
noti.flags = Notification.FLAG_AUTO_CANCEL;
manager.notify(R.string.app_name, noti);
//intent to call the activity which shows on ringing
Intent myIntent = new Intent(context, Alarmring.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
//display that alarm is ringing
Toast.makeText(context, "Alarm Ringing...!!!", Toast.LENGTH_LONG).show();
}}
Si, a pesar de cualquier problema de volver a preguntar .. :)
ya, pero tuvo problemas en que a partir de los 2 últimos días, – Aerrow
Amigo, Basta con crear una aplicación. Primero, conoce la creación de un widget desde una aplicación. Y, coloque el timepicket allí. Y, almacene el tiempo (como milisegundos) en la base de datos que desea activar la alarma. En ese momento, simplemente llame a esa hora desde la base de datos y verifique la hora actual (en milisegundos). En el tiempo requerido, solo levante la alarma desde el Administrador de alarmas o Notificación desde el Administrador de notificaciones. – Praveenkumar
tiene muestras para esto, porque no tengo idea de cómo hacerlo. – Aerrow