2

我想在服务中获取 xml 并通过 AIDL 返回该 xml 字符串。今天,我意识到当这个字符串很长时,调用应用程序只会收到一个空值。我测试了一下,发现字符串长度的限制似乎是大约 520000 个字符,接近 512*1024=524288。Java在内部将字符串存储为UTF-16,我认为,但我不确定每个字符在内部(至少)两个字节大,所以这个限制是1MB。

现在,我想知道这个限制是否记录在任何地方,或者之前是否有人遇到过问题。有谁知道我如何轻松返回这么大的字符串?

4

2 回答 2

2

现在,我想知道这个限制是否记录在任何地方,或者之前是否有人遇到过问题。

AFAIK,它没有正式记录,但是 IPC 调用的内容有 ~1MB 的限制,无论是如何完成的(AIDL、广播Intent等)或数据是什么(字符串、位图、其他形式的字节数组等)。

有谁知道我如何轻松返回这么大的字符串?

使用文件。如果您愿意,可以通过ContentProviderand提供文件openFile(),将 提供Uri给 AIDL 响应中的内容。

于 2012-04-15T00:15:19.280 回答
0

是的,它是有限的。

不要直接发送字符串,最好的办法是将它存储起来,SQLite然后在需要字符串的任何地方调用它。

于 2015-10-13T16:31:55.143 回答