是新的Android應用程序開發使用AlarmClock的或者Alarmmanager添加報警,根據用戶輸入
需要打開從用戶輸入數據的報警..
我看了一下鬧鐘:哪些可以用來設置報警默認時鐘應用程序,它不能被抵消了。
Alarmmanager:用於觸發在指定的時間的事件,但它的功能集或取消報警
理念:用AlarmClock的設置報警並取消報警usi ng Alarmmanager ..有可能這樣做
我該怎麼做。幫我出去
是新的Android應用程序開發使用AlarmClock的或者Alarmmanager添加報警,根據用戶輸入
需要打開從用戶輸入數據的報警..
我看了一下鬧鐘:哪些可以用來設置報警默認時鐘應用程序,它不能被抵消了。
Alarmmanager:用於觸發在指定的時間的事件,但它的功能集或取消報警
理念:用AlarmClock的設置報警並取消報警usi ng Alarmmanager ..有可能這樣做
我該怎麼做。幫我出去
要創建你可以做這樣的事情了警鐘:
//... some code here
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// if you don't want the alarm to go off even in Doze mode, use
// setExact instead
mAlarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
alarmTimeMillis,
getPendingIntent(context);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
mAlarmManager.setExact(AlarmManager.RTC_WAKEUP,
alarmTimeMillis,
getPendingIntent(context);
} else {
// Inexact time was only introduced in API 19+. Before that, all was exact time
mAlarmManager.set(AlarmManager.RTC_WAKEUP,
alarmTimeMillis,
getPendingIntent(context);
}
這裏有些話。在API 19之前,所有報警都是準確的,這就是我們使用set
方法的原因。在API 19及之後,引入了不精確的警報,這就是爲什麼我們需要使用setExact
對於確切的警報和set
對於不精確的警報。 在API 23中,引入了打盹模式。在該模式下,如果手機已處於睡眠模式,則使用set
或setExact
設置的任何鬧鐘都不會關閉。要強制設備從打盹並觸發報警,用setExactAndAllowWhileIdle
的方法getPendingIntent
可能是這樣的:
private PendingIntent getPendingIntent(Context context) {
int requestCode = 69;
return PendingIntent.getBroadcast(context, requestCode,
new Intent(mContext, AlarmReceiver.class),
PendingIntent.FLAG_UPDATE_CURRENT);
}
當然,你可以把臨時演員到意圖如常。
要取消報警,你只需要創建一個具有相同requestCode掛起的意圖,並呼籲取消報警經理是這樣的:
(AlarmManager) context.getSystemService(Context.ALARM_SERVICE)
.cancel(getPendingIntent(context));
請介意,上面的電話是遠遠不夠完善等等,請勿按原樣使用它。
要設置鬧鐘,你需要爲pendingIndent創建一個輸入意圖。這個pendingIntent將進入警報管理器。
要取消報警,創建的PendingIntent將同requestCode/ID,然後調用alarmanager.cancel()
有關如何設置報警馬槽,請谷歌的例子完整的代碼。有很多,幾乎這些例子每一個正在-例子
所以,如果我正確地得到你,你打算使用'AlarmClock'實例設置一個鬧鐘,並使用'AlarmManager'類的實例取消同樣的鬧鐘? –
是的,Parag Kadam。有沒有辦法做到這一點,搜查但找不到 – Venu