Android开发之实现每隔一段时间触发定时器android定时器
生活随笔
收集整理的這篇文章主要介紹了
Android开发之实现每隔一段时间触发定时器android定时器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
老套路看圖:
每隔20秒重新觸發
實際上實現也很簡單我們可以通過android原生自帶的定時器完成,說下思路:
1.首先實現android定時器開啟觸發
2.在定時器結束的方法中再次觸發開啟定時器即可
package com.wyze.mercury.common.utils;import android.os.CountDownTimer;import com.wyze.mercury.common.TimerListener; import com.wyze.platformkit.utils.log.WpkLogUtil;/*** @author : xiayiye5* @date : 2021/1/8 18:10* 類描述 : Android定時器每隔一段時間刷新燈的狀態*/ public class CountDownTimerUtils {private CountDownTimer countDownTimer;private CountDownTimerUtils() {}public static CountDownTimerUtils getInstance() {return Single.COUNT_DOWN_TIMER_UTILS;}public CountDownTimerUtils setTime(final TimerListener timerListener) {if (null == countDownTimer) {countDownTimer = new CountDownTimer(20 * 1000L, 1000) {@Overridepublic void onTick(long l) {WpkLogUtil.e("定時器", l / 1000 + "");}@Overridepublic void onFinish() {WpkLogUtil.e("定時器", Thread.currentThread().getName());//執行獲取燈的狀態timerListener.timeFinish();//繼續定時countDownTimer.start();}};}return this;}private static final class Single {private static final CountDownTimerUtils COUNT_DOWN_TIMER_UTILS = new CountDownTimerUtils();}/*** 開始定時*/public void startTime() {if (null != countDownTimer) {countDownTimer.start();}}/*** 取消定時*/public void cancelTime() {if (null != countDownTimer) {countDownTimer.cancel();//切記置空countDownTimer = null;}} }注意:一定要做好生命周期的管理如下,個人建議開啟定時器方法放到onStart生命周期中調用
@Overrideprotected void onStart() {super.onStart();CountDownTimerUtils.getInstance().setTime(new TimerListener() {@Overridepublic void timeFinish() {//每隔一段時間刷新燈的狀態getIotProp();}}).startTime();}@Overrideprotected void onDestroy() {super.onDestroy();//銷毀的時候一定要取消定時器避免內存泄漏CountDownTimerUtils.getInstance().cancelTime();}@Overrideprotected void onPause() {super.onPause();CountDownTimerUtils.getInstance().cancelTime();}在看下回調接口
package com.wyze.mercury.listener;/*** @author : xiayiye5* @date : 2021/1/8 15:17* 類描述 :*/ public interface TimerListener {/*** 定時完成*/void timeFinish(); }?
總結
以上是生活随笔為你收集整理的Android开发之实现每隔一段时间触发定时器android定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之RadioButto
- 下一篇: android sina oauth2.