国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程設置提醒事件的方法

2020-04-11 10:56:18
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程設置提醒事件的方法。分享給大家供大家參考,具體如下:

1、啟動service

Intent intent = new Intent(this,AutoTaskService.class);intent.putExtra("reminder_event", reminderModel);startService(intent);

2、service file

public class AutoTaskService extends Service {  private ReminderModel mReminderModel = null;  @Override  public IBinder onBind(Intent intent) {    return null;  }  @Override  public void onCreate() {    super.onCreate();  }  @Override  public void onDestroy() {    super.onDestroy();  }  @Override  public void onStart(Intent intent, int startId) {    if(intent == null)      return;    if(intent.hasExtra("reminder_event")) {      mReminderModel = (ReminderModel) intent.getSerializableExtra("reminder_event");    }    setReminderEvent();    super.onStart(intent, startId);  }  /**   * set reminder event   */  private void setReminderEvent() {    if(mReminderModel == null)      return;    if(TextUtils.isEmpty(mReminderModel.reminderStartTime))      return;    if(TextUtils.isEmpty(mReminderModel.reminderTime))      return;    Calendar cal = getCalendarFromDate(mReminderModel.reminderStartTime);    String[] array = mReminderModel.reminderTime.split("-");    for(int i = 0; i < array.length; i++) {      if(i == 0) {        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(array[0]));      } else if (i == 1) {        cal.set(Calendar.MINUTE, Integer.parseInt(array[1]));      }    }    cal.set(Calendar.SECOND, 0);    Intent intent = new Intent(AutoTaskService.this, AlarmReceiver.class);    if(!TextUtils.isEmpty(mReminderModel.reminderPath)) {      intent.putExtra("reminder_pic_path", mReminderModel.reminderPath);    }    PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);   // 獲取AlarmManager對象    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);   // AlarmManager.RTC_WAKEUP休眠時會運行,如果是AlarmManager.RTC,在休眠時不會運行    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);  }  /**   * @param date format is 2012-9-18   * @return Calendar value is after set date's value   */  private Calendar getCalendarFromDate(final String date) {    int year = 0;    int month = 0;    int day = 0;    try {      String[] array = date.split("-");      int[] arrayInt = new int[array.length];      for (int i = 0; i < array.length; i++) {        arrayInt[i] = Integer.parseInt(array[i]);        if(i == 0) {          year = arrayInt[0];        } else if(i == 1){          month = arrayInt[1];        } else if(i == 2){          day = arrayInt[2];        }      }    } catch (Exception e) {      e.printStackTrace();    }    Calendar cal = Calendar.getInstance();    if(year > 0 && month >= 0 && day >= 0) {      cal.set(year, month - 1, day);    }    return cal;  }}

3、定時接收器

public class AlarmReceiver extends BroadcastReceiver {  @Override  public void onReceive(Context context, Intent intent) {    String path = null;    if(intent.hasExtra("reminder_pic_path")) {      path = intent.getStringExtra("reminder_pic_path");    }    Log.i("======> AlarmReceiver", path);    // 啟動通知activity    Intent it = new Intent(context, FingerPaint.class);    it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    if(!TextUtils.isEmpty(path)) {      it.putExtra("reminder_pic_path", path);    }    context.startActivity(it);  }}

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长白| 镇沅| 申扎县| 西和县| 万全县| 夏津县| 武冈市| 潼关县| 皮山县| 博客| 北辰区| 瑞安市| 泗洪县| 蛟河市| 珠海市| 遂昌县| 云龙县| 阳西县| 乐平市| 台北县| 东兴市| 玉龙| 九江县| 长汀县| 巫山县| 武穴市| 牟定县| 房产| 涞水县| 富裕县| 崇仁县| 乳源| 抚远县| 临潭县| 繁昌县| 宕昌县| 佛坪县| 策勒县| 平遥县| 木兰县| 临泉县|