顯示具有 counter 標籤的文章。 顯示所有文章
顯示具有 counter 標籤的文章。 顯示所有文章

2015年3月16日 星期一

[iOS] 可以開始/暫停/繼續的 倒數計時器

雖然說倒數計時器隨便google都很多篇,但是認真看有可以暫停/繼續的倒是不多.

好不容易找到了就把它記下來!


step1:

一定是先在.h那邊宣告一個

NSTimer *timer;


然後看你是要在哪邊給他值(可以放在viewDidLoad()裡面,讓程式一開始就可以執行)

給值這邊:


timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(sender) userInfo:nil repeats:YES];

scheduledTimerWithTimeInterval間隔多少秒

target:直接設定self

selector:@selector(要執行的函式名稱)

userInfo:設定為nil

repeats:是否要重複執行


step2:


開始撰寫每間隔時間要執行怎樣的動作 

-(void) 函式名稱{
    NSLog(@"timer");
}

不要忘了要在.h檔裡面也要宣告

- (void)函式名稱;


step3:

可以執行但是要怎樣暫停跟重新開始呢?

[timer setFireDate:[NSDate distantFuture]];//暫停

[timer setFireDate:[NSDate distantPast]];//重新開始


好了,這樣就完成囉!

by the way 如果是要停止(完全停止)

[timer close];

2015年2月13日 星期五

[Android] 倒數計時器

倒數計時可以分為兩種

1.可重複的

2.不可重複的

第一種當然就是使用Thread囉!

不斷用while()讓他重複

第二種比較簡單一點:

我們使用到CountDownTimer()這個類別

http://developer.android.com/reference/android/os/CountDownTimer.html

官網的解釋:

Public Methods


public final synchronized void cancel ()

Added in API level 1
Cancel the countdown.

public abstract void onFinish ()

Added in API level 1
Callback fired when the time is up.

public abstract void onTick (long millisUntilFinished)

Added in API level 1
Callback fired on regular interval.
Parameters
millisUntilFinishedThe amount of time until finished.

public final synchronized CountDownTimer start ()

Added in API level 1
Start the countdown.
除了start(),cancel以外

就是onFinish() ->倒數結束以後要幹嘛?

onTick()->每次減少固定單位時間時要做甚麼?

 new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();

官方網站也很貼心的提供程式碼

當然是要建立一個TextView 叫做mTextField (記得要findViewById)

然後他就會在上面顯示倒數多少秒這樣~

CounDownTimer(總共倒數多少秒 , 每次扣多少)

每1000為一秒, 所以30000 = 30 秒 , 1000 = 1秒

範例為倒數30秒,每次扣一秒.

十分容易吧! End