TimerUtil.java 1.38 KB
package com.cnlive.gundam.stream.util;

import android.os.Handler;
import android.os.Message;

/**
 * Created by Lynn on 5/25/2017.
 */

public class TimerUtil {

    public static final int UPDATE_ONLINE_PERSON = 30000;

    private final int HANDLER_WHAT = 1;
    private int delayTime;

    private TimerHandler mHandler = null;
    private TimerListener l;

    public TimerUtil(TimerListener listener) {
        if (mHandler == null)
            mHandler = new TimerHandler();
        this.l = listener;
    }

    public void startTimer(int startTime, int delay) {
        delayTime = delay;
        if (mHandler != null) {
            mHandler.removeMessages(HANDLER_WHAT);
        } else {
            mHandler = new TimerHandler();
        }
        mHandler.sendEmptyMessageDelayed(HANDLER_WHAT, startTime);
    }

    public void cancelTimer() {
        if (mHandler != null && mHandler.hasMessages(HANDLER_WHAT)) {
            mHandler.removeMessages(HANDLER_WHAT);
            mHandler = null;
        }
    }

    class TimerHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == HANDLER_WHAT) {
                startTimer(delayTime, delayTime);
                if (l != null) l.onTimer();
            }
        }
    }

    public interface TimerListener {
        void onTimer();
    }

}