版权声明:橘子丶 https://blog.csdn.net/qq_43573190/article/details/87890422
package com.example.kanghuwei.kanghuwei_0223;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.util.concurrent.TimeUnit;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.tv_dao)
TextView tvDao;//文字显示
private Disposable mDisposable;//接触订阅
private int i = 3;//倒计时默认时间
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
//创建被观察者,interval轮询,每个一秒发送一次,执行onNext中方法
Observable observable = Observable.interval(1, TimeUnit.SECONDS);
observable.create(new ObservableOnSubscribe<Object>() {
@Override
public void subscribe(ObservableEmitter<Object> e) throws Exception {
e.onNext(01);
}
});
Observer observer = new Observer() {
@Override
public void onSubscribe(Disposable d) {
mDisposable = d;
}
@Override
public void onNext(Object o) {
i--;
tvDao.setText(i + "S");
if (i == 0) {
if (mDisposable != null) {
mDisposable.dispose();
}
startActivity(new Intent(MainActivity.this, ShowActivity.class));
finish();
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
};
//线程切换
observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
}
@Override
protected void onDestroy() {
super.onDestroy();
//页面跳转时取消订阅
if (mDisposable != null) {
mDisposable.dispose();
}
}
}