Handler传递多个对象刷新UI
程序员文章站
2022-03-08 11:43:57
...
场景:B类刷新A类中的UI,如果一个后台加载图片的线程刷新activity中的图片。
发送:
public String loadVideoInfoImage(VideoInfo video, ImageView imageView,
TextView textView) {
Message msg = handlerImage.obtainMessage();
msg.what = 1;
msg.obj = new Object[] { video, imageView, handler, textView };
handlerImage.sendMessage(msg);
return getVideoInfoCachePath(video);
}
如上 A类中调用B类loadVideoInfoImage方法传入3个参数,然后B类通过HandlerThread,msg传递3个对象,1自定义的实体类VideoInfo 2,ImageView 3,TextView,可以避免使用全局变量。
接收:
private void handleMessageDo(Message msg) {
if (msg.obj != null) {
if (msg.obj instanceof Object[]) {
Object[] objs = (Object[]) msg.obj;
if (objs[0] instanceof VideoInfo2) {
loadWriteVedioImage((VideoInfo2) objs[0],
(ImageView) objs[1], (Handler) objs[2],
(TextView) objs[3]); // 加载并写入图片
}
}
}
}
关键是这句:
msg.obj = new Object[] { video, imageView, handler, textView };
下一篇: Android Handler内存泄露
推荐阅读
-
Spring cloud restTemplate 传递复杂参数的方式(多个对象)
-
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
-
Handler异步消息传递机制(五)一个Activity多个Handler时,Message是如何传递的
-
handler循环刷新UI
-
@RequestBody传递多个对象
-
使用Handler实现定时刷新数据,更新UI
-
android之间传递多个对象
-
Angularjs 中 ui-sref 和 $state.go 如何传递单个多个参数和将对象作为参数
-
[转]Android定时刷新UI界面----Handler
-
GCD实现多个异步线程同步刷新UI