現(xiàn)在有一個定時提醒的功能败玉, 用 AlarmManager 自己來做,有多少坑做過的都知道镜硕。(應用被kill, 應用痹艘恚活,息屏兴枯,關(guān)機重啟血淌,多版本兼容問題。念恍。六剥。)晚顷。要自己做一個完善的不是 1-2天就能搞定的。當然如果是應用內(nèi)簡單的定時執(zhí)行疗疟,定時提醒 AlarmManager 還是很好用的该默。
http://www.reibang.com/p/1f919c6eeff6
對于這種需求可以調(diào)用系統(tǒng)鬧鐘或用系統(tǒng)日歷的提醒事件來做。
日歷提醒功能可以直接用 Intent 起日歷提醒界面策彤,這樣最簡單栓袖,不需要權(quán)限。
private void OpenCalendar() {
Calendar beginTime = Calendar.getInstance();//開始時間
beginTime.clear();
beginTime.set(2014,0,1,12,0);//2014年1月1日12點0分(注意:月份0-11店诗,24小時制)
Calendar endTime = Calendar.getInstance();//結(jié)束時間
endTime.clear();
endTime.set(2014,1,1,13,30);//2014年2月1日13點30分(注意:月份0-11裹刮,24小時制)
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(Uri.parse("content://com.android.calendar/events"))
.putExtra("beginTime", beginTime.getTimeInMillis())
.putExtra("endTime", endTime.getTimeInMillis())
.putExtra("title", "標題")
.putExtra("description", "地點");
startActivity(intent);
}
調(diào)用API 直接設(shè)置需要動態(tài)申請權(quán)限
https://www.cnblogs.com/loaderman/p/10489592.html
https://developer.android.com/guide/topics/providers/calendar-provider
設(shè)置系統(tǒng)鬧鐘需要 SET_ALARM 權(quán)限
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
Date date = sf.parse(sDate + sTime);
Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM);
intent.putExtra(AlarmClock.EXTRA_HOUR, 11);
intent.putExtra(AlarmClock.EXTRA_MINUTES, 59);
intent.putExtra(AlarmClock.EXTRA_MESSAGE, "hello world");
intent.putExtra(AlarmClock.EXTRA_VIBRATE, true);
intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
取消鬧鐘用 AlarmClock.ACTION_DISMISS_ALARM