19集使用alarm保持設(shè)備喚醒_第1頁
19集使用alarm保持設(shè)備喚醒_第2頁
19集使用alarm保持設(shè)備喚醒_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1.保持設(shè)備 1.1 、APPActivity 1.保持設(shè)備 1.1 、APPActivity ,APP另一個實現(xiàn)方法是在應(yīng)用程序布局XML 文件android:keepScreenOn FLAGKEEPSCREENON標(biāo)志,除非你不再想讓屏保持幕在你運行的應(yīng)用RelativeLayout xmlns:android= HYPERLINK http:/s/ http:/spublicclassMainActivity protectedvoidonCreate(Bundle super.onCreate(savedInstan1.2CUP 盡可能短。一個合理的情形下使用wake lock 可能

2、1.2CUP 盡可能短。一個合理的情形下使用wake lock 可能APP 包括使用管理wakelock。1.3結(jié)可以 PARTIALWAKELOCKetervce :下面代碼使用方法 startWakefulService()啟動 entService。 這個方法相startService(),除了當(dāng)服務(wù)開始,WakefulBroadcastReceiver 保持 wake publicclassMyWakefulReceiverextends publicvoidonReceive(Contextent) ent service = newent(context, MystartWakef

3、ulService(context, receiverowerManager = (erManager) getSystemService(WakeLock wakeLock =步是在manifest 文件加上WAKE LOCKuses-.WAKE_LOCK wake ent ent()方法有同樣WakefulBroadcastReceiver wake ent ent()方法有同樣WakefulBroadcastReceiver ent、啟動 Service、甚至啟動 Activity AlarmAlarm Service APP publicclassentService public s

4、ic finalNOTIFICATION_ID = 1; privateNotificationManagermNotificationManager;pat.Builderbuilder; public My protectedvoidBundleextras/ 這里是需要保持 CPU 運行才能/WakefulBroadcastReceiver所提供的wakelock APP 生命周期外的操作是服務(wù)器同步。同步基于這些條件:來自服務(wù)器/設(shè)備的新 alarm類型 APP 生命周期外的操作是服務(wù)器同步。同步基于這些條件:來自服務(wù)器/設(shè)備的新 alarm類型當(dāng)alarm被觸發(fā),啟動一個ent2.2

5、alarm RTC alarm時鐘時間類型較好地適用于依賴當(dāng)前區(qū)域時間的 alarm。 變 ELAPSEDREALTIME- 30分鐘內(nèi)喚醒設(shè)備激活alarm, 此后每個30分鐘執(zhí)行一次ERVAL_HALF_HOUR, 2.4RTC 2.4RTC 2:00p.m.喚醒設(shè)備,激活alarm, 在同樣時間一天重復(fù)一次:li v setAlarm(Context context) alarM = ecttmvCex.ALRSEVIC ent = newent(context, Srent =ent.getBroadcast(context,ent,Calendar calendar = Calend

6、ar.getInstance(); 個WakefulBroadcastReceivercalendar.set(Calendar.HOUR_OF_DAY, calendar.set(Calendar.MINUTE, 8:30a.m 喚醒設(shè)備,激活alarm,此后每天重復(fù)一次,見項目文件 it AlarmManager lag;/p的AlarmManager,提系統(tǒng)alarm服rit ent lrent;/當(dāng)alarm激活,觸發(fā)alarm2:00p.m.Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_O

7、F_DAY, 14);/setInexactRepeating()里用 erval 常量,本例、illis(), AlarmManager.ERVAL_DAY, alarmprivate AlarmManager alarmMgr; private Pendingent alarmalarmMgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); ent = newent(context, AlarmReceiver.class);ent = Pendingent.getBroadcast(context, 0,ent

8、,0); SystemClock.elapsedRealtime() 60*1000,publicclassootReceiverextendsBroadcastReceiver2. BroadcastReceiverpublicclassootReceiverextendsBroadcastReceiver2. BroadcastReceiver接收廣播1. 在應(yīng)用程序的manifest 設(shè),這允許app 接收系A(chǔ)CTIONBOOTCOMPLETED (app 至少被用戶手動啟動一次默認情況下,當(dāng)設(shè)備關(guān)機時所有 alarms會被取消。要避免這種情況發(fā)生,你可以設(shè)計你的應(yīng)用程序當(dāng)用戶重啟設(shè)備時

9、自動重啟。這個確保AlarmManager持續(xù)做它的任務(wù),而用戶無需手動重啟 alarm.if(alarmMgr!= 取決于app,可能需要有取消alarm的能力.取消alarm, 在AlarmManager上調(diào)用 cancel() , 傳遞到你不想激活的 Pendingent 如:lamMstnxcetn(lrMng.T_KEU,illis(),l/當(dāng)設(shè)備重啟,自動重啟 ComponentName receiver = new ComponentName(context, Sm = context.getPackageManager();TKLLAComponentNamereceiver=newComponentName(context, m=receiver android:nameComponentNamereceiver=newComponentName(context, m=receiver android:name=.Sent-ent-注意 manifest, 啟動設(shè)置為 android:enabled=false. 這意味著被調(diào)用,除非應(yīng)用程序顯式地打開它. 這會避免啟打(如果用戶設(shè)置ComponentNamereceiver=newComponentName(context, m=覆蓋manifest 設(shè)置,甚至越過重啟.(ala

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論