AlarmManager
2016-07-27 本文已影响64人
森码
Android 闹钟
注册闹钟
private void setAlarm() {
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
/**
*第二个参数,requestCode,这个值不一样,可以定义多个闹钟
*第四个参数,flags,在getService()和getActivity中也有,详情请参看Android API,这里不是我们的重点,但是很重要的flag
*/
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
/**
* 注意这里的时间一定要加上开机之后的时间
*/
long firstTime = 5000 + SystemClock.elapsedRealtime();
/**
* 5.1之后,默认5000ms之后开始,每60000ms一次
*/
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 60000, sender);}
广播
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "clock", Toast.LENGTH_SHORT).show();
}
}
别忘了在manifest中注册,这个是不报错的。
<receiver android:name=".alarm.AlarmReceiver" />