亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一個(gè)簡單的Android定時(shí)任務(wù)

 更新時(shí)間:2017年06月16日 11:55:08   作者:windarain  
這篇文章主要為大家詳細(xì)介紹了一個(gè)簡單的Android定時(shí)任務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

使用AlarmManager來實(shí)現(xiàn)定時(shí)提醒,它提供了一種訪問系統(tǒng)鬧鐘服務(wù)的方式。在全局中,達(dá)到設(shè)定的時(shí)間,
在它上面注冊的一個(gè)Intent將會被廣播,接著啟動(dòng)相應(yīng)的應(yīng)用程序,可以通過自定義Receiver來實(shí)現(xiàn)。

首先要在AndroidManifest.xml中進(jìn)行注冊

<receiver android:name=".AlarmReceiver">
      <intent-filter>
        <action android:name="CLOCK" />
      </intent-filter>
</receiver>

自定義一個(gè)鬧鐘接收器,getIntExtra可用于接受發(fā)送方putExtra傳過來的值,Intent i = new Intent(“CLOCK”)其中的“CLOCK”是注冊時(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類中,其中月份的存儲也是從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對象作為鬧鐘響應(yīng)的對象,發(fā)送廣播。第二個(gè)參數(shù)可以為0,但是因?yàn)樽龅氖且淮涡缘聂[鐘,如果為0的話,新設(shè)的鬧鐘會將之前設(shè)的鬧鐘覆蓋掉。FLAG_UPDATE_CURRENT: 如果希望獲取的PendingIntent對象與已經(jīng)存在的PendingIntent對象相比,如果只是Intent附加的數(shù)據(jù)不同, 那么當(dāng)前存在的PendingIntent對象不會被取消,而是重新加載新的Intent附加的數(shù)據(jù)。

PendingIntent pi = PendingIntent.getBroadcast(this, _id,i,PendingIntent.FLAG_UPDATE_CURRENT);

發(fā)送鬧鐘請求,設(shè)置在alarmCalendar.getTimeInMillis()時(shí)間啟動(dòng)由pi指定的組件。
第一個(gè)參數(shù)用來指定定時(shí)服務(wù)的類型,主要可選以下值:

AlarmManager.ELAPSED_REALTIME:睡眠狀態(tài)下不可用,該狀態(tài)下鬧鐘使用相對時(shí)間。
AlarmManager.ELAPSED_REALTIME_WAKEUP:在睡眠狀態(tài)下會喚醒系統(tǒng)并執(zhí)行提示功能,也使用相對時(shí)間。
AlarmManager.RTC:該狀態(tài)睡眠狀態(tài)下不可用,使用絕對時(shí)間,即當(dāng)前系統(tǒng)時(shí)間。
AlarmManager.RTC_WAKEUP:鬧鐘在睡眠狀態(tài)下會喚醒系統(tǒng)并執(zhí)行提示功能,該狀態(tài)下鬧鐘也使用絕對時(shí)間。

am.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pi);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論