美文网首页
RxJava2请求权限和启动页计时的使用

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

作者: 小婷android | 来源:发表于2017-12-14 16:34 被阅读0次

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<Boolean>() {
                    @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<Long, Long>() {
                    @Override
                    public Long apply(Long aLong) throws Exception {
                        return mTime - aLong;//mTime是定义的总秒数
                    }
                })

                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())//在主线程
                .subscribe(new Observer<Long>() {
                    @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请求权限和启动页计时的使用

      本文链接:https://www.haomeiwen.com/subject/iebkwxtx.html