作者ghostman (小猴)
看板AndroidDev
标题[问题] 记忆体排序问题
时间Sat May 19 00:34:06 2012
1.想请问用ByteArrayOutputStream这个方法可以排好记忆体里面的资料吗?
例如我从外部传送1000笔资料,我想要用以下的方式实现
buffer[0]~buffer[499] + buffer[500]~buffer[999]
2.我尝试传送到终端机,确保我的资料有传送,实际上有 ,但用了以下的方法
可能只有前4万多笔有资料 之後的资料都消失了 是我没接收到吗?
尤其是以下程式的其中一段os.write(buffer, 0, bytes);
用 log.d 去看 os.size 的话是有76800资料没错,但就像我说的
到最後资料会不见,这边是我头痛的地方,好好的资料有传送,为什麽
接到一半就消失了呢??
有请高手帮忙,感恩.....
-------------------------------------------------------
public void run()
{
Log.i(TAG, "BEGIN mConnectedThread");
byte[] buffer = new byte[76800];
int bytes;
ByteArrayOutputStream os = new ByteArrayOutputStream();
while (true) {
try {
bytes = mmInStream.read(buffer);
Thread.sleep(3000);
if(bytes >= 0)
{
os.write(buffer, 0, bytes);
Thread.sleep(1000);
}
if(os.size()>=76800)
{
Log.d("test1","bitmap:"+os.size());
bitmap(buffer);
os.reset();
mmOutStream.write(0x31);
}
mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes,
-1, buffer).sendToTarget();
} catch (IOException e) {
Log.e(TAG, "disconnected", e);
connectionLost();
break;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.244.178.107
1F:→ ghostman:换个方式说好了 有什麽方法可以一次接收完全部资料的呢? 05/19 17:06