java - 如何實(shí)現(xiàn)精準(zhǔn)的定時(shí)執(zhí)行任務(wù)?
問(wèn)題描述
我想用服務(wù)實(shí)現(xiàn)一個(gè)每天定時(shí)(23:59)執(zhí)行一段代碼(簽出,GET方式向服務(wù)器提交,能不開(kāi)activity就不開(kāi)activity)的功能,用的TimerTask,Handler,但是這個(gè)挺不靠譜的,熄屏情況下基本上不起作用。
后來(lái)有聽(tīng)說(shuō)AlarmManger、JobScheduler,看了看文檔,好像是專(zhuān)門(mén)用來(lái)開(kāi)Activity的,請(qǐng)問(wèn),我該使用怎樣的邏輯來(lái)完成自動(dòng)簽出這一動(dòng)作?
問(wèn)題解答
回答1:AlarmManger 沒(méi)有說(shuō)是專(zhuān)門(mén)用來(lái)開(kāi)Activity,他可以開(kāi)啟 Broadcast,Service,Activity,具體看你構(gòu)建定時(shí)器的時(shí)候如何實(shí)例化Intent。據(jù)我所知,AlarmManger針對(duì)不同手機(jī),發(fā)起鬧鐘的時(shí)間會(huì)有誤差,不精準(zhǔn),尤其是小米機(jī)器,這可能是硬件時(shí)鐘的問(wèn)題了。其他的不太了解。僅供參考。
回答2:Android管控越來(lái)越嚴(yán)格了, 還是乖乖用JobScheduler吧, JobScheduler的設(shè)計(jì)初衷就是為了合理利用手機(jī)資源的.
相關(guān)文章:
1. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?2. MySQL數(shù)據(jù)庫(kù)中文亂碼的原因3. macos - mac下docker如何設(shè)置代理4. docker不顯示端口映射呢?5. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””6. android studio總是在processes running好久7. docker-compose 為何找不到配置文件?8. css - C#與java開(kāi)發(fā)Windows程序哪個(gè)好?9. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?10. docker gitlab 如何git clone?
