我想在服务中获取xml并通过AIDL返回该xml字符串。今天,我意识到当此字符串很长时,调用应用程序只会收到一个空值。我测试了一下,发现字符串长度的限制似乎约为520000个字符,接近512 * 1024 = 524288。 Java在内部将字符串存储为UTF-16,但我不确定,但是我不确定每个字符在内部(至少)两个字节大,因此此限制为1MB。
现在,我想知道此限制是否记录在任何地方,或者以前是否有人遇到过问题。有谁知道我可以轻松地返回这么大的字符串?
最佳答案
现在,我想知道此限制是否记录在任何地方,或者以前是否有人遇到过问题。
AFAIK,它没有正式记录,但是IPC呼叫的内容有大约1MB的限制,无论如何完成(AIDL,广播Intent
等)或数据是什么(字符串,位图,其他形式的字节数组等)。
有谁知道我可以轻松地返回这么大的字符串?
使用文件。如果愿意,可以通过ContentProvider
和openFile()
提供文件,并将Uri
提供给AIDL响应中的内容。