在我的 android 应用程序中,我读取了一大堆 64KiB 的文件并将其写入套接字。对套接字的写入是异步的,我无法控制它,它也不提供回调函数。
如果我读取大文件,我会得到 OOM 异常,因为套接字仍在解析字节并通过网络发送它们。
作为参考,代码如下所示:
byte[] chunk = new byte[64 * 1024];
int read;
while ((read = fis.read(chunk)) != -1) {
// Async call
socket.write(chunk);
chunk = new byte[64 * 1024];
}
有没有我可以遵循的设计模式来克服这种情况。
谢谢