Android 延遲執行


因為手上的App有個倒數關閉的功能,因此一開始在找延遲執行後關閉的寫法,但是很奇怪的一些延遲執行的做法在我的App中卻沒有效果,後來終於找到可以在App中運作的寫法
Handler handler = new Handler();
     handler.postDelayed(new Runnable() {    
     @Override    public void run() {
        //過五秒後要做的事情
        CastScreenService.stop();
        android.os.Process.killProcess(android.os.Process.myPid());
    }}, 5000);
裡面的寫法是,五秒後將此App完全關閉。

至此本來應該就要完成了,但是後來因為我打算把這幾秒的時間顯示在上面,嘗試的要寫for迴圈,卻發現會因為要設定final的關係,迴圈的i值會被固定,便又去找了倒數計時的function,因此讓我找到了下列的寫法

new CountDownTimer(10000, 1000) {
    public void onTick(long millisUntilFinished) {        
    Txt_Info2.setText("本程式於" + millisUntilFinished / 1000 + "秒後自動關閉");
    }
    public void onFinish() {
        CastScreenService.stop();
        android.os.Process.killProcess(android.os.Process.myPid());
    }}.start();
這個Android內建的CountDownTimer(執行多少毫秒,每次多久毫秒執行) 寫法完美的解決了我原本的需求,倒數幾秒後,自動執行,而每秒亦可顯示在打算顯示的文字上
CountDownTimer(執行幾秒*1000,每次多少秒執行*1000)  因此上面的寫法會是 執行10秒,每秒執行一次onTick,10秒後執行onFinish。
至此就完美的解決了我的需求

留言

這個網誌中的熱門文章

jQuery獲取Select選擇的Text和Value(轉)

Android 在Fragment下控制輸入鍵盤

彈跳視窗iframe的運用