溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中怎么實(shí)現(xiàn)倒計(jì)時(shí)

發(fā)布時(shí)間:2021-06-26 16:01:55 來(lái)源:億速云 閱讀:153 作者:Leah 欄目:移動(dòng)開(kāi)發(fā)

這篇文章給大家介紹Android中怎么實(shí)現(xiàn)倒計(jì)時(shí),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

CountDownTimer這個(gè)類(lèi),實(shí)現(xiàn)了倒計(jì)時(shí)的功能。將后臺(tái)線程的創(chuàng)建和Handler隊(duì)列封裝成一個(gè)方便的類(lèi)調(diào)用。

這個(gè)類(lèi)比較簡(jiǎn)單,只有四個(gè)方法:onTick,onFinsh、cancel和start。其中前面兩個(gè)是抽象方法,所以要重寫(xiě)一下。

下面是官方給的一個(gè)小例子:

new CountdownTimer(30000, 1000) {       public void onTick(long millisUntilFinished) {           mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);       }       public void onFinish() {           mTextField.setText("done!");       }    }.start();
ackage com.yydcdut.daojishi;  import android.os.Bundle; import android.os.CountDownTimer; import android.app.Activity; import android.view.Menu; import android.widget.TextView; import android.widget.Toast;  public class MainActivity extends Activity {     private MyCount mc;       private TextView tv;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);tv = (TextView)findViewById(R.id.show);           mc = new MyCount(30000, 1000);           mc.start();     }      @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.main, menu);         return true;     }          /*定義一個(gè)倒計(jì)時(shí)的內(nèi)部類(lèi)*/       class MyCount extends CountDownTimer {              public MyCount(long millisInFuture, long countDownInterval) {                  super(millisInFuture, countDownInterval);              }              @Override              public void onFinish() {                  tv.setText("finish");                 }              @Override              public void onTick(long millisUntilFinished) {                  tv.setText("請(qǐng)等待30秒(" + millisUntilFinished / 1000 + ")...");                  Toast.makeText(MainActivity.this, millisUntilFinished / 1000 + "", Toast.LENGTH_LONG).show();//toast有顯示時(shí)間延遲                }         }       }

 主要是重寫(xiě)onTick和onFinsh這兩個(gè)方法,onFinish()中的代碼是計(jì)時(shí)器結(jié)束的時(shí)候要做的事情;onTick(Long m)中的代碼是你倒計(jì)時(shí)開(kāi)始時(shí)要做的事情,參數(shù)m是直到完成的時(shí)間,構(gòu)造方法MyCount()中的兩個(gè)參數(shù)中,前者是倒計(jì)的時(shí)間數(shù),后者是倒計(jì)每秒中間的間隔時(shí)間,都是以毫秒為單位。例如要倒計(jì)時(shí)30秒,每秒中間間隔時(shí)間是1秒,兩個(gè)參數(shù)可以這樣寫(xiě)MyCount(30000,1000)。 將后臺(tái)線程的創(chuàng)建和Handler隊(duì)列封裝成為了一個(gè)方便的類(lèi)調(diào)用。

關(guān)于Android中怎么實(shí)現(xiàn)倒計(jì)時(shí)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI