1、建立一個(gè)AlarmReceiver繼承入BroadcastReceiver,并在A(yíng)ndroidManifest.xml聲明
- public static class AlarmReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- Toast.makeText(context, "鬧鐘提示:時(shí)間到!", Toast.LENGTH_LONG).show();
- }
- }
2、建立Intent和PendingIntent,來(lái)調用目標組件。
- Intent intent = new Intent(this, AlarmReceiver.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
3、設置鬧鐘
獲取鬧鐘管理的實(shí)例:
- AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
設置單次鬧鐘:
- alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (5*1000), pendingIntent);
設置周期鬧鐘:
-
- alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10*1000), (24*60*60*1000), pendingIntent);
4.取消鬧鐘
- Intent intent = new Intent(this, AlarmReceiver.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
-
- AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
-
- //只有設置相同的Intent才會(huì )取消該鬧鐘
- alarmManager.cancel(pendingIntent);
ps:鬧鐘管理時(shí),有需求用多個(gè)鬧鐘,AlarmManager是如果設置相同的Intent,將視為替代之前設置的鬧鐘,即使設置的是不同的鬧鈴時(shí)間。