package com.haegyeong.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.Scheduler;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
public class SplashActivity extends AppCompatActivity {
private static final String TAG = SplashActivity.class.getSimpleName();
private int count = 5;
private Disposable mDisposable;
private Observer<String> observer;
private TextView tv_time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
tv_time = ((TextView) findViewById(R.id.tv_time));
observer = new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
mDisposable = d;
}
@Override
public void onNext(String aLong) {
tv_time.setText("倒计时" + aLong);
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onComplete() {
jumpMain(null);
}
};
Observable.interval(0, 1, TimeUnit.SECONDS) //设置间隔执行
.take(count + 1) //设置总共取的次数
.map(new Function<Long, String>() {
@Override
public String apply(Long aLong) throws Exception {
long l = count - aLong;
return l + "";
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mDisposable != null && !mDisposable.isDisposed()) {
mDisposable.dispose();
mDisposable = null;
}
}
//跳进主页
public void jumpMain(View view) {
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
}
}
Rxjava interval 和take 操作符精准实现倒计时功能
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Observable.interval(0, 1, TimeUnit.SECONDS)参数一:什么时候开始发送参数...
- 现在很多软件都需要获取短信验证码,通常都是60秒在向服务器发送一次请求。那么如果用Rxjava来实现这个倒计时的功...
- RxJava2源码学习之一RxJava2源码学习之二 RxJava 版本:2.2.5 map操作符的实现 先上个图...
- 大家在使用微信推广的时候是不是经常都会遇到推广链接被拦截导致无法下载app的情况,此时用户在微信中打开会提示“已停...