1. 程式人生 > >Android用timer.schedule()做一個定時去重新整理的執行緒

Android用timer.schedule()做一個定時去重新整理的執行緒

Timer timer = new Timer();

timer.schedule(java.util.TimerTask task,
                     long delay,
                     long period);

今天算是徹底的搞懂了這個曾經讓我為之頭疼的方法。下面我就重點介紹一下:

第一個引數,是 TimerTask 類,在包:import java.util.TimerTask .使用者要繼承該類,並實現 public void run() 方法,因為 TimerTask 類 實現了 Runnable 介面。

第二個引數的意思是,當你呼叫該方法後,該方法必然會呼叫 TimerTask 類 TimerTask 類 中的 run() 方法,這個引數就是這兩者之間的差值,轉換成漢語的意思就是說,使用者呼叫 schedule() 方法後,要等待這麼長的時間才可以第一次執行 run() 方法。即推遲多久執行

第三個引數的意思就是,第一次呼叫之後,從第二次開始每隔多長的時間呼叫一次 run() 方法。即執行多久多長時間

private Timer mTimer;
private TimerTask mTimerTask;
private Handler mHandler;


@Override
    public void onCreate() {
        super.onCreate();
		mHandler = new Handler();
		mTimer = new Timer();
		mTimerTask = new TimerTask() {
		    @Override
		    public void run() {
		        mHandler.post(new Runnable() {
		            @Override
		            public void run() {
		                sync(); //要做的事情的一個方法
		            }
		        });
		    }
		};
		mTimer.schedule(mTimerTask, 1000, SECOND * 1000);
}

@Override
public void onDestroy() {
    super.onDestroy();
    mTimer.cancel();
}

相關推薦

Androidtimer.schedule()一個定時重新整理執行

Timer timer = new Timer(); timer.schedule(java.util.TimerTask task,                      long delay,                      long period); 今

Java GUI一個簡單的管理系統

java 管理系統 gui 1.先完成主頁面MainUI(代碼如下)package com.pag_1; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.

使用Quartz Job 簡單的一個定時服務

windows shutdown ted cte pre nuget override ida args 第一步:創建一個windows服務 第二步:通過NuGet 安裝Quartz (我搜索了Quartz 關鍵字 安裝了 ) 第三步 代碼部分 任務類 如 多個任務

裝飾器一個登陸系統

賬號 nbsp else HR return 查重 user 軟件 hone 主頁分為四個板塊:原創軟件,精品軟件,灌水專區,福利專區。原創軟件,精品軟件可以瀏覽,灌水專區,福利專區需要登陸後瀏覽,支持qq登陸和本地登陸兩種方式,用戶系統支持增刪改查功能(學習完正則之後再修

裝飾器一個登陸功能(進階):

read AD OS pos 商城 *args readline wrapper 改變 1 dic = { 2 ‘username‘:None, 3 ‘status‘:False 4 } 5 def login(flag): # 傳入

51微控制器一個物聯網溫度計+遠端開關

一 故事背景 1,對物聯網技術感興趣的朋友想玩一些物聯網應用練練手,這個正好合適。 2,剛畢業的萌新或者還沒有畢業的青年男女,想學習物聯網知識,這個適合你練手。 3,已經入坑微控制器開發很久的工程師,想了解最新的物聯網架構,接觸一下網際網路的思維,這個很合適。 4,拿這個專案練手很“划

51微控制器一個電子鐘

    學了一個多月51了,終於整了個電子鐘出來,個人感覺還是比較有趣的。    需要注意的是我用的是普中的板子,板子型別不同,io口的功能可能會有所差異。然後我這個k1開關和k2開關是接反了的,原本k1應該是接P3^0,k2接P3^1的,結果我一測試才知道k1接到了P3^1

AndroidFile類寫一個簡單的檔案管理軟體

一,概要: Android中的File類和JAVA中File類是一樣的,方法也可以去看看java的API(點選檢視)。這裡補充幾點: File file=this.getFilesDir(); //當前應用資料預設的資料儲存路勁:/data/user/0

python來一個APP | python GUI 基礎(實戰)

上程式碼 import tkinter as tk class APP: def __init__(self, master): frame = tk.Frame(mas

c語言一個棧,完成逆波蘭表示式

先用c語言,實現了一個棧結構,在用棧完成逆波蘭表示式。 包含中綴表示式 -》 字尾表示式, 用棧完成計算。 // main.m // 逆波蘭表示式 // // Created by 郭朝順 on 2018/5/10星期四. // Copyright © 201

AndroidTimer和TimeTask完成定時任務

1. Timer 用法 new Timer().schedule(new TimerTask(){   @Override publicvoid run() {   // TODO Auto-generated method stub // do some your own process whe

HTML5audio標籤一個最簡單的音訊播放器

在做系統的時候,要求做一個音訊播放器,就在網上查找了一些資料,發現這樣的資料還是很千篇一律的,EasyUI框架並沒有給我們一個音訊播放器的功能,在bootstrap上有,但是也是結合html5來寫的,因此,我們在這裡就用純的html5血一個音訊播放器,如何播放本地的音訊。

go語言一個簡單的登入,大家不妨來看一下

現在的網站可以說登入註冊幾乎就是首要的,所以今天就給大家來一個簡約版的登入吧 先來給大家看一下效果吧 有些過分簡潔,大家別見怪啊 接下來是成功的效果 我只是提供一個思路和方法至於美化,大家隨意 接下來是失敗的效果 接下來就是程式碼了 前

HTML5+CSS3一個好看的介面

效果圖:滑鼠經過影象的時候會觸發hover 1s內轉一圈=-=程式碼:<!DOCTYPE html><html lang="zh-cn">  <head>    <title>MyHtml.html</title> 

Qt程式打包——教你一個可安裝的執行程式

很多人都會編寫程式碼,但是生成可安裝執行程式,可能有很多人不知道生成的辦法。 那麼,現在我們一起來學習一下吧。 1、我們首先將Qt程式碼編譯處release版本,並通過去生成可執行程式。(這裡就不詳細介紹了,想要知道可點選一下連結https://blog.csdn.net/qq_160933

Java定時任務Timer排程器【二】 多執行原始碼分析(圖文版)

  上一節通過一個小例子分析了Timer執行過程,牽涉的執行執行緒雖然只有兩個,但實際場景會比上面複雜一些。 首先通過一張簡單類圖(只列出簡單的依賴關係)看一下Timer暴露的介面。   為了演示Timer所暴露的介面,下面舉一個極端的例子(每一個介面方法面

android 停止一個無線迴圈的執行

最近在工作中遇到的一個問題。 一個執行緒,在按鍵單擊是開始啟動,裡面的邏輯是一個While(flog == true){  } 的無線迴圈,當我觸發另外一個按鍵時,改變標誌位,結束這個執行緒和迴圈,看

在 Java 的多執行中,如何判斷給定的一個類是否是執行安全的(另外:synchronized 同步是否就一定能保證該類是執行安全的。)

同步程式碼塊和同步方法的區別:同步程式碼塊可以傳入任意物件,同步方法中 如果多個執行緒檢查的都是一個新的物件,不同的同步鎖對不同的執行緒不具有排他性,不能實現執行緒同步的效果,這時候執行緒同步就失效了。   兩者的區別主要體現在同步鎖上面。對於例項的同步方法,因為只能使用

Android觀察者模式代替廣播通知重新整理介面

原始碼下載我們知道廣播是誇程序的,所以不能什麼時候都用廣播,如果涉及到安全問題就最好別用廣播,怕其他應用程序監聽到你的廣播。這裡採用介面去實現廣播的功能。 下面看實現程式碼: 1.首先我定義一個介面 package com.cn.interfacecallbackbro

利用threading模組和queue模組在python3直譯器上建立一個簡單的python執行

python直譯器沒提供執行緒池模組,故在python3上自定義python執行緒池簡單版本,程式碼如下 #用threading queue 做執行緒池 import queueimport threadingclass ThreadPool(): def __init__(self,arg):#建