91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中利用RxJava2 實現一個倒計時功能

發布時間:2021-04-08 17:52:04 來源:億速云 閱讀:252 作者:Leah 欄目:移動開發

怎么在Android中利用RxJava2 實現一個倒計時功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

導入必要的庫文件(Android支持庫和Reactivex系列支持庫)

implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'

implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.1.10'

布局文件(很簡單,只有一個TextView)

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.haocent.android.countdown.MainActivity">

  <TextView
    android:id="@+id/tv_count_down"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:text="Hello World!" />

</android.support.constraint.ConstraintLayout>

實現倒計時功能(代碼清晰明了,也打出了相應的Log)

public class MainActivity extends AppCompatActivity {

  private static final String TAG = MainActivity.class.getSimpleName();

  private Disposable mDisposable;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    final TextView tvCountDown = findViewById(R.id.tv_count_down);

    // 倒計時 10s
    mDisposable = Flowable.intervalRange(0, 11, 0, 1, TimeUnit.SECONDS)
        .observeOn(AndroidSchedulers.mainThread())
        .doOnNext(new Consumer<Long>() {
          @Override
          public void accept(Long aLong) throws Exception {
            Log.d(TAG, "倒計時");

            tvCountDown.setText("倒計時 " + String.valueOf(10 - aLong) + " 秒");
          }
        })
        .doOnComplete(new Action() {
          @Override
          public void run() throws Exception {
            Log.d(TAG, "倒計時完畢");

            Toast.makeText(MainActivity.this, "倒計時完畢", Toast.LENGTH_SHORT).show();
          }
        })
        .subscribe();
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();

    if (mDisposable != null) {
      mDisposable.dispose();
    }
  }
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西昌市| 田东县| 赣榆县| 巴彦淖尔市| 应城市| 万州区| 乐昌市| 牟定县| 磴口县| 三门峡市| 天全县| 荣成市| 本溪| 隆德县| 田阳县| 绵阳市| 徐州市| 当雄县| 通州区| 霍邱县| 自治县| 开封县| 玛曲县| 颍上县| 依安县| 湄潭县| 墨脱县| 平泉县| 鄂伦春自治旗| 淅川县| 聂拉木县| 玉林市| 都安| 霍林郭勒市| 寿宁县| 南康市| 阿鲁科尔沁旗| 花莲市| 泸州市| 东辽县| 两当县|