發表文章

目前顯示的是 6月, 2017的文章

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。 至此就完美的解決了我的需求