国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 济宁市| 肃宁县| 承德县| 明水县| 达日县| 霍山县| 益阳市| 隆子县| 团风县| 张家界市| 泰州市| 边坝县| 黄大仙区| 湖州市| 顺义区| 依安县| 山阴县| 精河县| 镇远县| 北碚区| 兴安县| 连云港市| 布拖县| 新平| 开平市| 绵竹市| 余姚市| 云霄县| 马龙县| 和林格尔县| 广饶县| 上思县| 无锡市| 金湖县| 奎屯市| 修武县| 河津市| 环江| 平邑县| 霍州市| 华亭县|