RxJava2请求权限和启动页计时的使用

1.请求权限

第一步:导包:RxJava和RxPermission的依赖包

//RxJava
 compile 'io.reactivex.rxjava2:rxjava:2.0.1'
 compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
 //RxPermission
 compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'

第二步:代码使用

  RxPermissions rxPermission = new RxPermissions(FlashActivity.this);
        rxPermission
                //这里是你需要的权限
                .request(Manifest.permission.INTERNET,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE,
                        Manifest.permission.CAMERA,
                        Manifest.permission.RECORD_AUDIO)
                .subscribe(new Consumer() {
                    @Override
                    public void accept(Boolean aBoolean) throws Exception {

                        if (!aBoolean) {
                            //权限不完整处理
//                            Toast.makeText(FlashActivity.this, "部分权限没有获取,会影响app正常使用", Toast.LENGTH_LONG).show();
                        }else{
                            //权限完整处理
                        }
                    }
                })
        ;

2.启动页倒计时的使用

代码实现

 Observable.interval(1, TimeUnit.SECONDS)
                .take(3)//总秒数
                .map(new Function() {
                    @Override
                    public Long apply(Long aLong) throws Exception {
                        return mTime - aLong;//mTime是定义的总秒数
                    }
                })

                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())//在主线程
                .subscribe(new Observer() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(Long value) {
                        //设置倒计时的秒数
                        countTime.setText(String.valueOf(value));
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {
                        //完成后进入对应的界面
                            Intent intent = new Intent(FlashActivity.this, MainActivity.class);
                            startActivity(intent);
                            finish();
                    }
                });

你可能感兴趣的:(RxJava2请求权限和启动页计时的使用)