2017-06-15 61 views
6

如果有任何支持庫功能可以通過API低於24使天文臺支持天文臺的功能setCountDownAndroid中的天文臺支持庫

+0

如何API 24到項目的複製粘貼來源和使用'Chronometer'呢? – azizbekian

+0

你能詳細說明一下嗎? –

+0

如何複製粘貼[此](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/Chronometer.java)類到您的包和使用'com.your.package.Chronometer'類而不是'android.widget.Chronometer'。 – azizbekian

回答

0

根據Android文檔,其不可能與低於API級別24. Chronometer小部件只使用計數。如果需要,請使用CountDownTimer

例如:

final int oneSecond = 1000; // in milliSeconds i.e. 1 second 
final int tenSeconds = 100000; // 100 seconds 
CountDownTimer cTimer = new CountDownTimer(100000, oneSecond) { 

    public void onTick(long millisUntilFinished) { 

      int totalTime = 60000; // in milliseconds i.e. 60 seconds 
      String v = String.format("%02d", millisUntilFinished/totalTime); 
      int va = (int)((millisUntilFinished%totalTime)/oneSecond); 
      textView.setText("remaining seconds: " +v+":"+String.format("%02d",va)); 
    } 

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

編輯:

如果你想要去GitHub的解決方案,然後看看thisthis

0

您可以嘗試RXJava簡單的手柄螺紋,定時器和許多其他功能。

定時器操作的文檔這樣說:

創建一個可觀察一個給定的延遲

因此,你所觀察的行爲之後發出特定產品expected-定時器()發射只是一個延遲後的單個項目。

另一方面,間隔運算符將發出間隔給定間隔的項目。

例如,這可觀察將發出一個項目每秒:

Observable.interval(1,TimeUnit.SECONDS);

而一個完整的例子:

Observable.interval(1,TimeUnit.SECONDS, Schedulers.io()) 
     .take(300) // take 300 second 
     .map(v -> 300 - v) 
     .subscribe(
      onNext -> { 
       //on every second pass trigger 
      }, 
      onError -> { 
       //do on error 
      }, 
      () -> { 
       //do on complete 
      }, 
      onSubscribe -> { 
       //do once on subscription 
      });