日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android實(shí)現(xiàn)定時任務(wù)及鬧鐘

瀏覽:179日期:2022-09-23 15:01:20

android中定時有很多種是實(shí)現(xiàn),常見的Handler 與Thread的結(jié)合,handler.postDelayed ,以及要使用的AlarmManger 等都可以實(shí)現(xiàn)定時任務(wù)的執(zhí)行,但是使用場景卻大不相同,這里主要是怎么用AlarmManager實(shí)現(xiàn)定時任務(wù)。

涉及知識點(diǎn):

1)BroadCastReceiver任務(wù)接收

2)CountDownTimer倒計時

3)AlertDialog 任務(wù)提醒

4)AlarmManager 定時任務(wù)

這里實(shí)現(xiàn)的需求時每天定時24點(diǎn)關(guān)機(jī),有設(shè)備是定制系統(tǒng),防止長時間的不關(guān)機(jī)導(dǎo)致應(yīng)用的卡頓,在關(guān)機(jī)時并給用戶以提示,如果無操作就自動關(guān)機(jī)。

第一步是實(shí)現(xiàn)簡單布局,在布局中寫兩個Button,一個設(shè)置,一個取消 第二步:初始化頁面布局及Button

public class MainActivity extends AppCompatActivityimplements View.OnClickListener{Button btn_set,btn_cancel;AlarmManager am;PendingIntent pi;long time;@Overrideprotected void onCreate(@NullableBundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView(){btn_set=findViewById(R.id.btn_Set);btn_cancel=findViewById(R.id.btn_Cancel);btn_set.setOnClickListener(this);btn_cancel.setOnClickListener(this);initAlarm();}@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.btn_Set:setAlarm();break;case R.id.btn_Cancel:cancelAlarm();break;}}// 初始化Alarmprivate void initAlarm(){pi=PendingIntent.getBroadcast(this,0,getMsgIntent(),0);time=System.currentTimeMillis();am= (AlarmManager) getSystemService(ALARM_SERVICE);}private Intent getMsgIntent(){//AlarmReceiver 為廣播在下面代碼中Intent intent=newIntent(this,AlarmReceiver.class);intent.setAction(AlarmReceiver.BC_ACTION);intent.putExtra('msg','鬧鐘開啟');return intent;}//設(shè)置定時執(zhí)行的任務(wù)private void setAlarm(){//android Api的改變不同版本中設(shè) 置有所不同if(Build.VERSION.SDK_INT<19){am.set(AlarmManager.RTC_WAKEUP,getTimeDiff(),pi);}else{am.setExact(AlarmManager.RTC_WAKEUP,getTimeDiff(),pi);}}public long getTimeDiff(){//這里設(shè)置的是當(dāng)天的15:55分,注意精確到秒,時間可以自由設(shè)置Calendar ca=Calendar.getInstance();ca.set(Calendar.HOUR_OF_DAY,15);ca.set(Calendar.MINUTE,55);ca.set(Calendar.SECOND,0);return ca.getTimeInMillis();}//取消定時任務(wù)的執(zhí)行private void cancelAlarm(){am.cancel(pi);}}

廣播主要代碼

import android.app.AlertDialog;import android.content.BroadcastReceiver;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.os.Build;import android.os.CountDownTimer;import android.util.Log;import android.view.WindowManager;import android.widget.Toast;public class AlarmReceiver extends BroadcastReceiver {private String TAG=this.getClass().getSimpleName();public static final String BC_ACTION='com.ex.action.BC_ACTION';private AlertDialog.Builder builder;CountDownTimer timer;@Overridepublic void onReceive(Context context,Intent intent) {String msg=intent.getStringExtra('msg');Log.i(TAG,'get Receiver msg :'+msg);Toast.makeText(context,msg,Toast.LENGTH_LONG).show();showConfirmDialog(context);}private void showConfirmDialog(Context context){builder=newAlertDialog.Builder(context);builder.setTitle('提示').setMessage('將在30秒后關(guān)機(jī)').setCancelable(false).setPositiveButton('取消',newDialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, intwhich) {if(timer!=null)timer.cancel();}});setShowDialogType(context,builder.create());}private void setShowDialogType(Context context,AlertDialog alertDialog){int type;if(Build.VERSION.SDK_INT>24){type= WindowManager.LayoutParams.TYPE_PHONE;}else if(Build.VERSION.SDK_INT>18){type= WindowManager.LayoutParams.TYPE_TOAST;}else{type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;}alertDialog.getWindow().setType(type);alertDialog.show();//開啟倒計時,并設(shè)置倒計時時間(秒)startCountDownTimer(context,alertDialog,30);}private void startCountDownTimer(final Context context,final AlertDialog alertDialog,inttime){timer=newCountDownTimer(time*1000,1000) {@Overridepublic void onTick(long millisUntilFinished) {//倒計時提示文字Log.i(TAG,'onTick time :'+millisUntilFinished);alertDialog.setMessage('將在'+(millisUntilFinished/1000)+'關(guān)機(jī)');}@Overridepublic void onFinish() {//倒計時結(jié)束Log.i(TAG,'倒計時結(jié)束!');alertDialog.dismiss();//倒計時結(jié)束執(zhí)行定時的任務(wù)// shutdown(context);}};timer.start();}//shoutDown需要 系統(tǒng)權(quán)限才能執(zhí)行否則會提示權(quán)限異常public void shutDown(Context context) {String action ='android.intent.action.ACTION_REQUEST_SHUTDOWN';String extraName ='android.intent.extra.USER_REQUESTED_SHUTDOWN';Intent intent =newIntent(action);intent.putExtra(extraName, true);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);}}

在AndroidManifest.xml中聲明配置文件中聲明:

如實(shí)全部代碼實(shí)現(xiàn)定時任務(wù)

彈框需要如下權(quán)限:

< uses-permission android:name=”android.permission.SYSTEM_ALERT_WINDOW”/>

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

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久最新视频| 国产免费播放一区二区| 99精品视频在线| 亚洲福利一区| 国产精品入口久久| 国产精品宾馆| 综合国产精品| 一区在线视频观看| 蜜臀va亚洲va欧美va天堂| 国产剧情一区| 欧美精品99| 精品色999| 日韩精品国产精品| 日韩欧美少妇| 亚洲激情中文在线| 日本不卡高清| 91精品国产成人观看| 99国产精品久久久久久久成人热| 日韩av网站在线观看| 国产欧美一级| 国产欧美一区二区色老头| 日韩精品一区二区三区中文| 国产精品第十页| 亚洲免费中文| 欧美日韩国产免费观看视频| 高清精品久久| 国产精品精品| 日韩午夜电影| 九色精品91| 性一交一乱一区二区洋洋av| 一区二区精品| 欧美一区二区三区久久精品| 国产美女久久| 三级小说欧洲区亚洲区| 好吊一区二区三区| 亚洲不卡视频| 日韩成人免费| 国产探花一区| 宅男噜噜噜66国产日韩在线观看| 欧美日韩黑人| 麻豆精品新av中文字幕| 国产精品一级| 国产真实久久| 亚洲黄页一区| а√天堂8资源中文在线| 视频国产精品| 鲁大师成人一区二区三区| 黄色国产精品| 中文不卡在线| 国产精品久久久久毛片大屁完整版 | 五月天久久777| 偷拍亚洲精品| 久久亚洲国产精品尤物| 999国产精品视频| 精品亚洲美女网站| 蜜臀精品久久久久久蜜臀| 久久中文字幕导航| 亚洲精品一区二区妖精| 91成人在线网站| 日韩不卡免费高清视频| 四虎精品一区二区免费| 黄色网一区二区| 蜜桃伊人久久| 成人高清一区| 一区二区三区网站| 神马午夜在线视频| 亚洲男人在线| 日韩在线视频精品| 日本在线一区二区三区| 久久国产乱子精品免费女| 亲子伦视频一区二区三区| 日韩精品第二页| 亚洲成av在线| 国产亚洲精aa在线看| 日韩一区二区三区免费播放| 奇米亚洲欧美| re久久精品视频| 久久精品免费看| 综合五月婷婷| 99国产精品免费视频观看| 国产探花一区| 中文字幕一区二区av| 久久中文字幕av一区二区不卡| 国产精品久久亚洲不卡| 精品一区在线| 久久精品一区| 久久狠狠亚洲综合| 亚洲国产日韩欧美在线| 91视频一区| 国产欧美日韩在线一区二区 | 国产国产精品| 国产福利电影在线播放| 国产欧美二区| 亚洲视频二区| 伊人久久亚洲美女图片| 国产传媒在线观看| 国产午夜久久av| 亚洲v天堂v手机在线| 日韩午夜黄色| 伊人精品视频| 波多野结衣一区| 香蕉人人精品| 秋霞国产精品| 黄毛片在线观看| 免费一级欧美片在线观看网站 | 麻豆视频久久| 国产欧美日韩免费观看| 水野朝阳av一区二区三区| 久久中文字幕av一区二区不卡| 国产高清不卡| 精品女同一区二区三区在线观看| 国产精品chinese| 国产乱人伦精品一区| 日本少妇精品亚洲第一区| 一区二区精彩视频| 日韩精品一二区| 免费精品视频最新在线| 国产精品婷婷| 亚洲专区在线| 男人操女人的视频在线观看欧美| 中文精品视频| 久久aⅴ国产紧身牛仔裤| 久久久精品午夜少妇| 人人草在线视频| 日韩免费福利视频| 青青青免费在线视频| 日本欧美不卡| 蜜桃国内精品久久久久软件9| 国产综合亚洲精品一区二| 亚洲福利专区| 丝袜美腿亚洲一区二区图片| 六月丁香综合| 综合亚洲色图| 日韩福利视频一区| 国产日本精品| 久久精品欧洲| 亚洲天堂1区| 国内精品福利| 99亚洲视频| 蜜桃视频一区二区| 91免费精品国偷自产在线在线| 国产欧美一区二区色老头| 久久中文字幕一区二区| 日本蜜桃在线观看视频| 亚洲欧美一区在线| 日韩中文欧美在线| 69精品国产久热在线观看| 美女久久精品| 999国产精品| 视频一区二区欧美| 日韩不卡免费视频| 麻豆一区二区99久久久久| 红杏一区二区三区| 国产欧美高清视频在线| 欧美日韩国产亚洲一区| 亚洲精品一区三区三区在线观看| 亚洲+小说+欧美+激情+另类| 国产欧美91| 激情五月综合网| 91精品国产自产观看在线 | 伊人国产精品| 欧美 日韩 国产精品免费观看| 亚洲黄色影院| 亚洲一区欧美激情| 青青草国产成人99久久| 黄色网一区二区| 亚洲成人一区| 日韩精彩视频在线观看| 精品国产中文字幕第一页| 日韩av一级| 亚洲tv在线| 欧美韩日一区| 亚洲影视一区| 国产成人久久精品麻豆二区| 伊人精品在线| 蜜桃精品视频| 国产美女精品| 国产精品mv在线观看| 日韩啪啪电影网| 中文字幕一区二区三区日韩精品| 久久久精品国产**网站| 91久久午夜| 麻豆久久一区二区| 国产视频亚洲| 精品一区二区三区四区五区| 99国产精品久久久久久久成人热| 久久gogo国模啪啪裸体| 好看不卡的中文字幕| 麻豆精品99| 蜜臀av一区二区在线免费观看| 精品女同一区二区三区在线观看| 红桃视频亚洲| 精品一二三区| 中文在线不卡| 欧美在线91| 牛牛精品成人免费视频| 国产精品v日韩精品v欧美精品网站| 欧美三级第一页| 精品久久91| 99成人在线|