每日看点!android 异步处理

来源:哔哩哔哩

2023-06-13 20:49:28

讲点简单的异步处理方法把,刷新页面,延迟刷新数据,定时任务有时候会用得到

android消息处理  最后面的delay 替换成毫秒值  (延时器)

new Handler().postDelayed(new Runnable(){    


【资料图】

public void run() {    

//execute the task    

}    

}, delay);   

推荐使用这个 delay 直接改成毫米就好 不用东一块西一块

new Handler().postDelayed(new Runnable(){    

public void run() {    

//execute the task    执行代码放这里 刷新页面也行 执行其他函数也可以

}    

}, delay);  

线程

new Thread(new Runnable(){  

public void run(){  

Thread.sleep(XXXX);  

handler.sendMessage();----告诉主线程执行任务  

}  

}).start();

延时器

TimerTask task = new TimerTask(){    

public void run(){     

//execute the task     

}    

};    

Timer timer = new Timer();  

timer.schedule(task, delay);  

这些方法不用导第三方包,直接复制用就好

-----------------分割线----------------------------------------

再推荐一个更好一点的方法,不过使用起来有点复杂 RXJAVA2

先要导包,注意新版旧版的函数代码都会有更新,如果有冲突的话注意查看最新写法

compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'

implementation 'io.reactivex.rxjava2:rxjava:2.0.7'

implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'

// 示例 动态判断权限代码

RxPermissions rxPermissions=new RxPermissions(this);

rxPermissions.request(

anifest.permission.READ_EXTERNAL_STORAGE,

Manifest.permission.CALL_PHONE,Manifest.permission.INTERNET)

.subscribe(new Consumer<Boolean>() {

@Override

public void accept(Boolean aBoolean) throws Exception {

if (aBoolean){

//申请的权限全部允许

Toast.makeText(B_Activity.this, "允许了权限!", Toast.LENGTH_SHORT).show();

}else{

//只要有一个权限被拒绝,就会执行

Toast.makeText(B_Activity.this, "未授权权限,部分功能不能使用", Toast.LENGTH_SHORT).show();

}

}

});

-----------------------------我是分割线----------------------------------------

导包       这个是:rxjava:1的 两者区分很大 留意了,最新的估计还有变化

compile 'com.tbruyelle.rxpermissions:rxpermissions:0.7.0@aar'

compile 'io.reactivex:rxjava:1.1.+'

compile 'io.reactivex:rxandroid:1.1.+'

RxPermissions.getInstance(this)

.request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA)  // 写入权限 和拍照权限

.subscribe(new Subscriber<Boolean>() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

Log.e("权限错误", "e:" + e);

//                            Toast.makeText(mContext, "出现异常", Toast.LENGTH_SHORT).show();

showToast("请把存储权限打开");

}

@Override

public void onNext(Boolean aBoolean) {

if (!aBoolean) {

showToast("请把相机和存储权限打开");

return;

}

}

});

-----------------------------我是分割线----------------------------------------

还有这种,定时处理,可以设置次数 间隔时间 什么时候启动,记得添加这个就好  .observeOn(AndroidSchedulers.mainThread()) //切换线程 就这一个就够了

Observable.intervalRange(

0,//从1开始计数

3,//计时5次

0, //延时几秒开始

5, //每次间隔1

TimeUnit.SECONDS)//单位秒

.observeOn(AndroidSchedulers.mainThread()) //切换线程 就这一个就够了

.subscribe(new Consumer<Long>() {

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)

@Override

public void accept(Long aLong) throws Exception {

Log.e("Link", "定时链接:执行代码放在这里" + aLong);

}

}

});

-----------------------------我是分割线----------------------------------------

还有这种  定时任务,当然你可以在需要的时候把他停掉,可操作性大了一点

重新打开的话要重新执行一次就是了,里面onError也有异常处理,可以统一

放在那里处理

d1[0].dispose();//停止任务调用这个   停止循环任务

final Disposable[] d1 = new Disposable[1];

Observable.interval(0, 1, TimeUnit.SECONDS)// 这里参数可以调整,自己试着调就好

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new Observer<Long>() {

@Override

public void onNext(Long aLong) {

Log.e("LoginActivity", "aLong:" + aLong + mac);

}

@Override

public void onSubscribe(Disposable d) {

d1[0] = d;

}

@Override

public void onError(Throwable e) {

}

@Override

public void onComplete() {

}

});

-----------------------------我是分割线----------------------------------------

RXJAVA是一个挺复杂的工具,这里就不讲原理了,直接用把,要做深层次功能的时候

就无法避免去多研究了,主要还是相互之间的关系把

关键词:

每日看点!android 异步处理

讲点简单的异步处理方法把,刷新页面,延迟刷新数据,定时任务有时候会[详细]
2023-06-13

世界观天下!沾福卡怎么弄(如何得沾福卡简介介绍)

对于如何得沾福卡这个问题感兴趣的朋友应该很多,这个也是目前大家比较[详细]
2023-06-13

月星国际公寓_对于月星国际公寓简单介绍-焦点信息

1、月星国际公寓位于徐州市金山桥开发区蟠桃园。2、共计房屋773户。文[详细]
2023-06-13

主力盐湖投产,赣锋锂业迎转折

主力盐湖投产,赣锋锂业迎转折,锂矿,锂精矿,赣锋锂业,盐湖股份,碳酸锂[详细]
2023-06-13

水床是什么材料做的(水床是什么)_全球快播

导读1、水床是利用水的浮力原理而设计创造的。2、一个水袋里加了缓冲棉[详细]
2023-06-13

天天新消息丨重庆:直升机悬停百米高空为特高压线路带电消缺

中新网重庆6月13日电(记者 周毅)记者13日从国网重庆市电力公司获悉[详细]
2023-06-13

成都二批次集中供地首场,总成交金额94亿元

今日是成都今年二批次的首次土拍顺利成交8宗宅地总成交面积达401亩总成[详细]
2023-06-13

全球快看:前4月完成交通固定资产投资1万亿元

本报北京6月12日电(记者韩鑫)记者近日从交通运输部获悉:4月,我国交[详细]
2023-06-13

华附南海实验高中招生办电话(华附南海实验高中)

华附南海实验高中招生办电话,华附南海实验高中这个很多人还不知道,现[详细]
2023-06-13

手机对中学生的利和弊周记_手机对初中生的危害的六百字作文

1、时下,校园颇为时髦的一句话就是:有事给我打手机。2、特别是家庭条[详细]
2023-06-13
版权所有: 北方制冷网 All Rights Reserved
京ICP备2021034106号-50
联系邮箱: 55 16 53 8@qq.com