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

首頁 > 系統 > Android > 正文

Android實現每天定時提醒功能

2019-12-12 03:08:54
字體:
來源:轉載
供稿:網友

這個是設置定時提醒的功能,即設置幾點幾分后提醒,用的是給系統設置個時間點,當系統時間到達設置的時間點的時候就會給我們發送一個廣播,然后達到時間提醒功能

網上找了很多,遇到了很多坑,經過摸索出來的,比如下面設置重復時間的第二個參數,網上有很多說是執行提醒延時多少毫秒執行,我用的刷了MIUI的三星手機測試怎么都不對,經過摸索測試才發現,原來不是,原來那個參數是設定的時間點的毫秒值!好了,不多說,看代碼:

/** * 開啟提醒 */ private void startRemind(){   //得到日歷實例,主要是為了下面的獲取時間   mCalendar = Calendar.getInstance();   mCalendar.setTimeInMillis(System.currentTimeMillis());   //獲取當前毫秒值   long systemTime = System.currentTimeMillis();   //是設置日歷的時間,主要是讓日歷的年月日和當前同步   mCalendar.setTimeInMillis(System.currentTimeMillis());   // 這里時區需要設置一下,不然可能個別手機會有8個小時的時間差   mCalendar.setTimeZone(TimeZone.getTimeZone("GMT+8"));   //設置在幾點提醒 設置的為13點   mCalendar.set(Calendar.HOUR_OF_DAY, 13);   //設置在幾分提醒 設置的為25分   mCalendar.set(Calendar.MINUTE, 25);   //下面這兩個看字面意思也知道   mCalendar.set(Calendar.SECOND, 0);   mCalendar.set(Calendar.MILLISECOND, 0);   //上面設置的就是13點25分的時間點   //獲取上面設置的13點25分的毫秒值   long selectTime = mCalendar.getTimeInMillis();   // 如果當前時間大于設置的時間,那么就從第二天的設定時間開始   if(systemTime > selectTime) {     mCalendar.add(Calendar.DAY_OF_MONTH, 1);   }  //AlarmReceiver.class為廣播接受者   Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);   PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);   //得到AlarmManager實例   AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);  //**********注意!!下面的兩個根據實際需求任選其一即可*********   /**   * 單次提醒   * mCalendar.getTimeInMillis() 上面設置的13點25分的時間點毫秒值   */   am.set(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), pi);   /**   * 重復提醒   * 第一個參數是警報類型;下面有介紹   * 第二個參數網上說法不一,很多都是說的是延遲多少毫秒執行這個鬧鐘,但是我用的刷了MIUI的三星手機的實際效果是與單次提醒的參數一樣,即設置的13點25分的時間點毫秒值   * 第三個參數是重復周期,也就是下次提醒的間隔 毫秒值 我這里是一天后提醒   */   am.setRepeating(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), (1000 * 60 * 60 * 24), pi); }/** * 關閉提醒 */ private void stopRemind(){   Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);   PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0,       intent, 0);   AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);   //取消警報   am.cancel(pi);   Toast.makeText(this, "關閉了提醒", Toast.LENGTH_SHORT).show(); }

上面第一個參數的詳解:

AlarmManager.RTC,硬件鬧鐘,不喚醒手機(也可能是其它設備)休眠;當手機休眠時不發射鬧鐘。

AlarmManager.RTC_WAKEUP,硬件鬧鐘,當鬧鐘發

主站蜘蛛池模板: 镇安县| 内江市| 永仁县| 佛坪县| 龙州县| 贞丰县| 枝江市| 武安市| 阳朔县| 日照市| 普宁市| 江城| 中江县| 开江县| 丽江市| 天全县| 元朗区| 沧州市| 赤城县| 伊宁市| 云安县| 文水县| 沾益县| 桐柏县| 元朗区| 宜昌市| 施秉县| 邻水| 福贡县| 屏东县| 丰县| 新野县| 濮阳县| 合江县| 洞头县| 登封市| 偏关县| 富蕴县| 涿州市| 那坡县| 莎车县|