倒计时、定时器的五种方式,有这篇就够了
生活随笔
收集整理的這篇文章主要介紹了
倒计时、定时器的五种方式,有这篇就够了
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
倒計時、定時器的使用次數也不少,這篇文章做一個總結,不用每次需要的時候到處去百度了,本文章內的代碼都經過本人親測有效!
方式一:
new Handler().postDelayed(new Runnable() {@Overridepublic void run() {//十秒之后在這進行操作}},10000);方式二:
//別忘了 onDestroy() 內進行銷毀,防止內存溢出 //第一個參數是總共多長時間,第二個參數是頻率時間CountDownTimer countDownTimer = new CountDownTimer(10000, 1000){@Overridepublic void onTick(long millisUntilFinished) {// 每刷新一次都走一次這里// millisUntilFinished/1000 這是秒}@Overridepublic void onFinish() {//字面意思,倒計時結束時走這里}};countDownTimer.start();//開啟刷新countDownTimer.cancel();//取消刷新方式三:
//定時器Timer timer = new Timer();TimerTask timerTask = new TimerTask() {@Overridepublic void run() {runOnUiThread(new Runnable() {@Overridepublic void run() {//每次刷新再次操作}});}};timer.schedule(timerTask,0,1000);//開啟刷新,第二個參數是多長時間之后開始倒計時,第三個參數是多長時間進行一次timer.cancel();//取消定時器方式四:
int time = 10;Handler mHandler = new Handler();Runnable myRunnale = new Runnable() {@Overridepublic void run() {time--;if(time>0){//每次刷新走這里mHandler.postDelayed(myRunnale,1000);}else{//倒計時結束走這里}}};mHandler.post(myRunnale);//開始倒計時方式五:
int stopTime = 10; new Thread(new Runnable() {@Overridepublic void run() {while(true){if (stopTime > 0){runOnUiThread(new Runnable() {@Overridepublic void run() {//每次刷新走這里}});stopTime--;}else {//倒計時操作}try{Thread.sleep(1000);}catch (Exception e) {e.printStackTrace();}}}}).start();最后贈送一個雙擊退出的代碼:
if (System.currentTimeMillis() - finishTime > 1500) {Toast.makeText(getBaseContext(),"再按一次退出程序",Toast.LENGTH_SHORT).show();finishTime = System.currentTimeMillis();} else {Toast.makeText(getBaseContext(),"我退出了",Toast.LENGTH_SHORT).show();}總結
以上是生活随笔為你收集整理的倒计时、定时器的五种方式,有这篇就够了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五点三次平滑滤波
- 下一篇: 汇编实现乐曲演奏《两只老虎》