android 如何在线程缓存实体类

释放双眼,带上耳机,听听看~!

今天,简单讲讲在线程里把数据缓存起来。

如果在线程里有一些类变量,在run的代码里循环给这些变量赋值,然后缓存在一个list链表里,最后变量链表会发现数据有的不对。

 

原因很简单,对于基本数据类型,可以直接在变量里赋值,而对于byte[],实体类等,则必须开辟存贮空间,不能直接赋值,因为对象和数组使用等于赋值实际上只是把对象或数组的引用赋值给了实体类的变量,当对象或数组发生改变时,实体类的数据会随之改变。

具体的代码很简单,在赋值时注意就可以。

 

public P2PNewDev.P2PVO p2PVO;
public RealMediaHeader m_header;
public byte[] pAVData;
public int nAVDataSize;
public VideoNode(P2PNewDev.P2PVO p2PVO, RealMediaHeader m_header, byte[] pAVData, int nAVDataSize) {
this.p2PVO = p2PVO;
this.m_header=new RealMediaHeader(m_header.getSync_code(),m_header.getFrametype()
,m_header.getFrameno(),m_header.getChannel(),m_header.getStream_id(),m_header.getCodec_id(),m_header.getTv_sec(),m_header.getTv_msec(),m_header.getResevered(),m_header.getMedia_length());
this.pAVData=new byte[nAVDataSize];
System.arraycopy(pAVData, 0, this.pAVData, 0, nAVDataSize);
this.nAVDataSize = nAVDataSize;
}

 

 

这里面当传递的实体类RealMediaHeader和byte[]时,都是新开辟存贮空间然后把值复制过来。

 

android 如何在线程缓存实体类就讲完了。

 

就这么简单。

人已赞赏
Android文章

Android开发java动态添加view

2020-3-13 17:55:36

Android文章

android 读取assets文件夹下的文件资源

2020-3-13 20:19:54

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索