本篇文章給大家分享的是有關(guān)定時(shí)任務(wù)如何在Android應(yīng)用中實(shí)現(xiàn),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站專注于興和網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供興和營銷型網(wǎng)站建設(shè),興和網(wǎng)站制作、興和網(wǎng)頁設(shè)計(jì)、興和網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造興和網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供興和網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
首先要在AndroidManifest.xml中進(jìn)行注冊(cè)
自定義一個(gè)鬧鐘接收器,getIntExtra可用于接受發(fā)送方putExtra傳過來的值,Intent i = new Intent(“CLOCK”)其中的“CLOCK”是注冊(cè)時(shí)使用的seceiver的name。
public class AlarmReceiver extends BroadcastReceiver { private int _id; private String str; @Override public void onReceive(Context context, Intent intent) { _id = intent.getIntExtra("ID", -1); Intent i = new Intent("CLOCK"); i.setClass(context, NoteEditor.class); i.putExtra("ID", _id); String str = intent.getStringExtra("NOTE"); Toast.makeText( context, str, Toast.LENGTH_SHORT).show(); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } }
時(shí)間的獲取通過DatePickerDialog和TimePickerDialog,需要注意的是DatePickerDialog的月份是從0開始。將獲取的數(shù)據(jù)放在Calendar類中,其中月份的存儲(chǔ)也是從0開始。
final AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); Calendar alarmCalendar = Calendar.getInstance();
alarmCalendar.set(mYear, mMonth-1, mDay, mHour, mMinute,0); Intent i = new Intent("CLOCK"); i.setClass(this, AlarmReceiver.class); i.putExtra("ID", _id); String note="notes"; i.putExtra("NOTE",note);
設(shè)置一個(gè)PendingIntent對(duì)象作為鬧鐘響應(yīng)的對(duì)象,發(fā)送廣播。第二個(gè)參數(shù)可以為0,但是因?yàn)樽龅氖且淮涡缘聂[鐘,如果為0的話,新設(shè)的鬧鐘會(huì)將之前設(shè)的鬧鐘覆蓋掉。FLAG_UPDATE_CURRENT: 如果希望獲取的PendingIntent對(duì)象與已經(jīng)存在的PendingIntent對(duì)象相比,如果只是Intent附加的數(shù)據(jù)不同, 那么當(dāng)前存在的PendingIntent對(duì)象不會(huì)被取消,而是重新加載新的Intent附加的數(shù)據(jù)。
PendingIntent pi = PendingIntent.getBroadcast(this, _id,i,PendingIntent.FLAG_UPDATE_CURRENT);
發(fā)送鬧鐘請(qǐng)求,設(shè)置在alarmCalendar.getTimeInMillis()時(shí)間啟動(dòng)由pi指定的組件。
第一個(gè)參數(shù)用來指定定時(shí)服務(wù)的類型,主要可選以下值:
AlarmManager.ELAPSED_REALTIME:睡眠狀態(tài)下不可用,該狀態(tài)下鬧鐘使用相對(duì)時(shí)間。
AlarmManager.ELAPSED_REALTIME_WAKEUP:在睡眠狀態(tài)下會(huì)喚醒系統(tǒng)并執(zhí)行提示功能,也使用相對(duì)時(shí)間。
AlarmManager.RTC:該狀態(tài)睡眠狀態(tài)下不可用,使用絕對(duì)時(shí)間,即當(dāng)前系統(tǒng)時(shí)間。
AlarmManager.RTC_WAKEUP:鬧鐘在睡眠狀態(tài)下會(huì)喚醒系統(tǒng)并執(zhí)行提示功能,該狀態(tài)下鬧鐘也使用絕對(duì)時(shí)間。
am.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pi);
以上就是定時(shí)任務(wù)如何在Android應(yīng)用中實(shí)現(xiàn),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。