精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

定時器刷新詳解(程序介紹)

來源:電子發燒友整理 作者:2018年01月26日 16:09
關鍵詞:程序定時器

本文為大家介紹定時器刷新的詳細程序。

1、定時刷新 只刷新一次

首先要發送一個廣播 PendingTIntent.getBroadcast()就類似于一個sendBroadcast

里面有四個參數 第一個就是context 第二個參數是個發送端的私人參數,起區分作用 第三個intent 第四個 flags參數可以指定PendingIntent的一些行為特點,是用來針對Intent.fillIn() ,這里面沒有用到0即可。

定時器刷新詳解(程序介紹)

PendingTIntent 核心就是異步激發 有興趣的可以看

PnedingTIngtent詳解

am.set()方法用來激發,第一個參數是鬧鐘的類型 就不贅述了 第二個就是開始時間()

這個參數的類型要根據前一個鬧鐘的類型來的 , RTC_WAKEUP RTC POWER_OFF_WAKEUP使用的絕對時間,其他的類型就是相對時間 ,相對時間就是相對于開機時運行的時間,絕對時間就是當前的時間。

public staTIc void sendUpdateBroadcast(Context context,long time){

AlarmManager am = context.getSystemService(Context.ALARM_SERVICE);

Intent i = new Intent(conext, UpdateReceiver.class);

i.putExtra(“time”, time);//time參數是刷新間隔

PendingIntent pendingIntent = PendingIntent.getBroadcast(contexxt, 0, i, 0);

//我這個是系統現在時間加上time時間進行刷新

am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + time, pendingIntent);

}

然后需要自定義一個接受器刷新的動作在這里面執行

public static class UpdateReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

long times=intent.getLongExtra(“time”,0);

Toast.makeText(context, “開始刷新”+intent.getLongExtra(“time”,0), Toast.LENGTH_SHORT).show();

}

}

2、定時刷新 根據間隔時間一直刷新

類似于鬧鐘

am.setRepeating ()第二個參數就是第一次刷新時間 (如果時間已經過了,會馬上響應一次),第三個就是間隔時間 。注意此廣播非覆蓋的 如若要改變刷新時間一定要先取消此廣播

public static void sendBroadcastRepeat(Context ctx,int hour,int minuter){

Intent intent =new Intent(ctx, RepeatReceiver.class);

intent.putExtra(“hour”,hour);

intent.putExtra(“minuter”,minuter);

PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx,0, intent, 0);

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, hour);

calendar.set(Calendar.MINUTE, minuter);

calendar.set(Calendar.SECOND, 00);

calendar.set(Calendar.MILLISECOND, 0);

AlarmManager am = getAlaramManager(ctx);

am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), 1000 * 60 * 60 * 24, pendingIntent);

}

同樣也要寫一個接收器

public static class RepeatReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

Toast.makeText(context, “定時刷新”, Toast.LENGTH_SHORT).show();

}

}

關注電子發燒友微信

有趣有料的資訊及技術干貨

下載發燒友APP

打造屬于您的人脈電子圈

關注發燒友課堂

鎖定最新課程活動及技術直播
聲明:電子發燒友網轉載作品均盡可能注明出處,該作品所有人的一切權利均不因本站而轉移。
作者如不同意轉載,既請通知本站予以刪除或改正。轉載的作品可能在標題或內容上或許有所改動。
收藏 人收藏
分享:

相關閱讀

發表評論

elecfans網友

分享到:

用戶評論(0