Android AlarmManager的一些問題

2021-09-06 12:27:00 字數 1896 閱讀 1226

我開始的**是這樣寫的 

alarmmanager.set(alarmmanager.rtc_wakeup, (5*1000), sender);

我的本意是設定五秒後啟動鬧鐘 但是每次都是我設定完鬧鐘之後立馬就啟動了。

後來我發現問題出在第二個引數上 我對他的理解是錯誤的

type

one of elapsed_realtime, elapsed_realtime_wakeup}, rtc or rtc_wakeup.

triggerattime

我之前以為它是「延遲」時間,而實際它是「啟動」時間。

要理解這個引數還要看type這個引數

public

static

final

intelapsed_realtime

//當系統進入睡眠狀態時,這種型別的鬧鈴不會喚醒系統。直到系統下次被喚醒才傳遞它,該鬧鈴所用的時間是相對時間,是從系統啟動後開始計時的,包括睡眠時間,可以通過呼叫systemclock.elapsedrealtime()獲得。系統值是3 (0x00000003)。

public

static

final

intelapsed_realtime_wakeup

//能喚醒系統,用法同elapsed_realtime,系統值是2 (0x00000002) 。

public

static

final

intrtc

//當系統進入睡眠狀態時,這種型別的鬧鈴不會喚醒系統。直到系統下次被喚醒才傳遞它,該鬧鈴所用的時間是絕對時間,所用時間是utc時間,可以通過呼叫 system.currenttimemillis()獲得。系統值是1 (0x00000001) 。

public

static

final

intrtc_wakeup

//能喚醒系統,用法同rtc型別,系統值為 0 (0x00000000) 。

它大致分為兩種型別 一種是相對時間 一種是絕對時間,所以,根據使用的型別不同 triggerattime設定也有所不同

如果使用elapsed_realtime_wakeup型別 應該呼叫systemclock.elapsedrealtime()獲取相對時間在加上你設定的延遲時間

alarmmanager.set(alarmmanager.elapsed_realtime_wakeup, systemclock.elapsedrealtime()+5000, sender); 

如果使用rtc_wakeup型別 應該呼叫system.currenttimemillis()獲取從1970.1.1號以來的時間在加上你設定的延遲時間

alarmmanager.set(alarmmanager.rtc_wakeup, system.currenttimemillis()+5000, sender); 

setrepeating方法有4個引數,這些引數的含義如下:

type:表示警報型別,一般可以取的值是alarmmanager.rtc和alarmmanager.rtc_wakeup。如果將type引數值設為alarmmanager.rtc,表示是乙個正常的定時器,如果將type引數值設為alarmmanager.rtc_wakeup,除了有定時器的功能外,還會發出警報聲(例如,響鈴、震動)。

triggerattime:第1次執行時要等待的時間,也就是執行延遲時間,單位是毫秒。

interval:表示執行的時間間隔,單位是毫秒。

operation:乙個pendingintent物件,表示到時間後要執行的操作。pendingintent與intent類似,可以封裝activity、broadcastreceiver和service。但與intent不同的是,pendingintent可以脫離應用程式而存在

Parallels Desktop 的一些問題

並且無法進行su命令,提示 authentication failure。這個問題產生的原因是由於系統預設是沒有啟用root使用者的,需要我們手工進行操作,在命令列介面下,或者在終端中輸入如下命令 sudo passwd password 你當前的密碼 enter new unix password...

整理iBATIS的一些重要點和一些常見問題的解決

1 ibatis配置 增加記錄時返回隨機生成的主鍵值 2.動態新增引數 3.關鍵字 和 的區別 乙個專案中在寫ibatis中的sql語句時,order by field 執行時總是報錯,後來上網查了查,才知道這裡不該用 而應該用 隨即查了下 與 的區別 總結如下 1.是把傳入的資料當作字串,如 fi...

Powershell 網路請求的一些常見問題

error the request was aborted could not create ssl tls secure channel.參考了powershell invoke webrequest fails with ssl tls secure channel 和powershell co...