Android 定时器

来源:互联网 发布:扬州java后端开发工资 编辑:程序博客网 时间:2024/05/23 14:08
Andorid定时器封装类public class TimerUtil {    private static final String TAG = "TimerUtil";        private static Handler  mTimeHandler   = null;    private static boolean  mTimerMark     = false;    private static Runnable mTimerRunnable = null;    private static int      mUpdateTime    = 0;    private TimerUtil() {    };    /**     * 定时器开始定时     *      * @param doThing 定时器处理事情     * @param updateTime 定时器时间     * @since V1.0     */    public static void startTime(Runnable doThing, int updateTime) {        if (null == doThing || updateTime < 0) {            return;        }        if (null == mTimeHandler) {            mTimeHandler = new Handler();            mTimerRunnable = doThing;            mUpdateTime = updateTime;            mTimerMark = true;        }        if (mTimerMark) {            mTimeHandler.postDelayed(mTimerRunnable, 0);        } else {            mTimeHandler.postDelayed(null, 0);        }    }    /**     * 定时器开始定时     *      * @param doThing 定时器处理事情     * @param updateTime 定时器时间     * @param mode 定时器模式     * @since V1.0     */    public static void startTime(Runnable doThing, int updateTime, boolean mode) {        if (null == doThing || updateTime < 0) {            return;        }        if (null == mTimeHandler) {            mTimeHandler = new Handler();            mTimerRunnable = doThing;            mUpdateTime = updateTime;            mTimerMark = true;        }        if (mTimerMark) {            if (mode) {                mTimeHandler.postDelayed(mTimerRunnable, 0);            } else {                mTimeHandler.postDelayed(mTimerRunnable, updateTime);            }        } else {            mTimeHandler.postDelayed(null, 0);        }    }        /**     * 这里对方法做描述     *      * @since V1.0     */    public static void updataTime() {        if (mTimerMark) {            mTimeHandler.postDelayed(mTimerRunnable, mUpdateTime);        } else {            mTimeHandler.postDelayed(null, 0);        }    }    /**     * 这里对方法做描述     *      * @since V1.0     */    public static void stopTime() {        mTimerMark = false;        if (null != mTimeHandler) {            mTimeHandler.removeCallbacks(mTimerRunnable);            mTimeHandler = null;        }    }        /**     * time格式 String型的日 如:昨天、今天、8月24日 15:30     * @param ltime     * @param context     * @return     * @since V1.0     */   public synchronized static String getTime_FormatTime_MMDD(long ltime, Context context) {       String time = "";              Calendar dateCalendar = Calendar.getInstance();       dateCalendar.setTimeInMillis(ltime);              Calendar targetCalendar = Calendar.getInstance();       targetCalendar.set(Calendar.HOUR_OF_DAY, 0);       targetCalendar.set(Calendar.MINUTE, 0);                            if (dateCalendar.after(targetCalendar)) {           time = context.getString(R.string.today) +" "+ time;           return time;       } else {           targetCalendar.add(Calendar.DATE, -1);           if (dateCalendar.after(targetCalendar)) {               time = context.getString(R.string.yesterday) +" "+ time;               return time;           }       }              String otherSDF = context.getString(R.string.mmdd);       Date date = dateCalendar.getTime();       SimpleDateFormat sfd = new SimpleDateFormat(otherSDF);       time = sfd.format(date);       CLog.d(TAG, "getTime_FormatTime_MMDD time:"+time);       return time;   }        /**      * time格式 String型的日 如:昨天、今天、8月24日 15:30      * @param ltime      * @param context      * @return      * @since V1.0      */    public synchronized static String getTime_FormatTime_MMDDHHMM(long ltime, Context context) {        String time = "";                Calendar dateCalendar = Calendar.getInstance();        dateCalendar.setTimeInMillis(ltime);                int month = dateCalendar.get(Calendar.MONTH) + 1;        int day = dateCalendar.get(Calendar.DAY_OF_MONTH);        int hour = dateCalendar.get(Calendar.HOUR_OF_DAY);        int minute = dateCalendar.get(Calendar.MINUTE);        time = String.format("%02d:%02d", hour, minute);                Calendar targetCalendar = Calendar.getInstance();        targetCalendar.set(Calendar.HOUR_OF_DAY, 0);        targetCalendar.set(Calendar.MINUTE, 0);        if (dateCalendar.after(targetCalendar)) {            time = context.getString(R.string.today) +" "+ time;            return time;        } else {            targetCalendar.add(Calendar.DATE, -1);            if (dateCalendar.after(targetCalendar)) {                time = context.getString(R.string.yesterday) +" "+ time;                return time;            }        }                time = String.format(Locale.ENGLISH,"%02d-%02d %02d:%02d", month, day, hour, minute);        CLog.d(TAG, "getTime_FormatTime_MMDDHHMM time:"+time);        return time;    }        /**     * 这里对方法做描述     *      * @return time格式 nnnn-mm-dd hh:mm:ss     * @since V1.0     */    public synchronized static String getTime_nnnnyydd(long t) {        if (t == 0) {            return "";        }        Calendar cale = Calendar.getInstance();        cale.setTimeInMillis(t);        int year = cale.get(Calendar.YEAR);        int month = cale.get(Calendar.MONTH) + 1;        int day = cale.get(Calendar.DAY_OF_MONTH);        int hour = cale.get(Calendar.HOUR_OF_DAY);        int minute = cale.get(Calendar.MINUTE);        int second = cale.get(Calendar.SECOND);        String time = String.format(Locale.ENGLISH, "%d-%02d-%02d %02d:%02d:%02d",  year, month, day, hour, minute, second);        CLog.d(TAG, "getTime_nnnnyydd time:"+time);        return time;    }        /**     * 这里对方法做描述     *      * @return time格式 nnnn-mm-dd hh:mm:ss     * @since V1.0     */    public synchronized static String getTime_nnnnyydd(Calendar cale) {        if (cale == null) {            return "";        }                int year = cale.get(Calendar.YEAR);        int month = cale.get(Calendar.MONTH) + 1;        int day = cale.get(Calendar.DAY_OF_MONTH);        int hour = cale.get(Calendar.HOUR_OF_DAY);        int minute = cale.get(Calendar.MINUTE);        int second = cale.get(Calendar.SECOND);        String time = String.format(Locale.ENGLISH,"%d-%02d-%02d %02d:%02d:%02d", year,month,day, hour, minute, second);        CLog.d(TAG, "getTime_nnnnyydd time:" + time);        return time;    }}
0 0
原创粉丝点击