当您启用警报时,您需要调用内置的闹钟管理器并使用alarmmanager.set在管理器中设置警报时间。一旦将警报时间(以毫秒为单位)提供给闹钟管理器,它将发送消息,您可以通过接收器类检索消息
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);
要接收警报,您需要创建一个扩展Receiver的新类,在onReceive中设置意图以调用警报时间所需的活动,您还可以提供通知。
public class AlarmReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
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 myIntent = new Intent(context, Alarmring.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
Toast.makeText(context, "Alarm Ringing...!!!", Toast.LENGTH_LONG).show();
}}
如果您仍然遇到任何问题,请再次询问... :)