handle中传递对象
来源:互联网 发布:2015淘宝新店扶持 编辑:程序博客网 时间:2024/05/16 11:22
最近在做项目中遇到了一个怪事,我解析了一些数据,将这些数据保存到了对象中,而对象实现了序列化接口。然后将这里数据用Arraylist保存并且通过handler传递出去,我是一部分一部分的往外传递的,在传递完成一部分之后就将Arraylist里面的数据给clear了,结果发现handler那边接受的的数据为空。但是当我数据量比较大的时候使用这个方法就不存在这个问题。
后来改用了将数据克隆出来然后传递出去就没问题了,因为保存对象的数据是经过序列化了的,用handler传递的数据的时候传递的只是他的内存地址,传递数据和接收数据对象其实是共享内存地址的,当我使用handler.sendMessage(message)方法之后立马调用Arraylist.clear()的时候数据被我立马清空了,handler那边还没来得及处理,就会造成handler接受的数据是空的现象。那又为什么会出现当我数据量比较大的时候使用这样的方法会没有问题呢?据猜测这个地方可能是由于线程不同步造成的。
android 通过handler传递对象:
Bundle bundle=new Bundle();bundle.putInt("id", 10);bundle.putSerializable("list",(ArrayList<Entity>)obj);//注意这里的Entity必须是实现了序列化接口的对象Message message=handler.obtainMessage(1, bundle);handler.sendMessage(message);
handler中接受数据:
Bundle bundle2=(Bundle) msg.obj; ArrayList<Entity> list2=(ArrayList<Entity>) bundle2.get("list");
- handle中传递对象
- Android中Handle对象
- Handler消息传递机制(子线程中传递new Handler和主线程中new Handle传递消息)
- buffer handle跨进程传递
- Handle的消息传递机制
- ATL中传递C++对象
- Android中Intent传递对象
- Android中对象的传递
- jni传递对象中包含arraylist对象。
- Android中Handle总结
- Android中handle机制
- Android中Handle总结
- Android中Intent中如何传递对象
- Android中Intent中如何传递对象
- Android中Intent中如何传递对象
- Android中webservice的简单使用以及使用handle在UI线程和子线程中传递数据
- Android中webservice的简单使用以及使用handle在UI线程和子线程中传递数据
- activity之间传递handle的方法
- 简析LIVE555中的延时队列
- WebSphere参考资料
- PHP 做群发短信(短信接口连接问题)
- java调用groovy类——修正版
- IBM WAS ND 分布式网络环境的理解与集群的实现
- handle中传递对象
- 15个注意事项决定程序员的未来
- pymongo api
- Blackbox报告:如何防止创业公司死于拔苗助长
- hibernate中的 bag
- ZOJ3209Treasure Map精确覆盖DLX
- VIM 参考手册
- ns2中广播代理实现中的问题
- ANDROID取CPU序列号