1.AsyncTask是android的一个异步事件处理,很方便。
直接看代码,看不懂砍我。
.............
binding.btn2.setOnClickListener(new View.OnClickListener() {
String str="null";
@SuppressLint("StaticFieldLeak")
@Override public void onClick(View view) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
// 在这里执行耗时的操作
try {
str=ali.query();//查询阿里云数据,这个sdk是同步sdk,所以访问不能放在主线程
publishProgress();//告诉主线程调用下面定义的更新函数
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
binding.distext.setText(str);//更新文本显示
super.onProgressUpdate(values);
}
}.execute();
}
}
);
............
简单方便,这玩意直接调用比新建包,线程间通讯快多了。