2012-04-15 74 views
1

我想XML的服務,並通過AIDL返回XML字符串。今天,我意識到,當這個字符串非常長時,調用應用程序只會收到一個空值。我測試了一下並發現,字符串長度的限制似乎是大約520000個字符,它接近512 * 1024 = 524288。內部的Java存儲字符串作爲UTF-16,我想,但我不知道,每一個字符是內部(至少)兩個字節大,那麼這個限制將在1MB。如何通過AIDL從服務中返回大型字符串?

現在,我想知道這是否限制隨時隨地記錄,或者如果有人有過與它的問題。有誰知道我可以輕鬆地返回這麼大的字符串嗎?

回答

1

現在,我想知道這個限制是否記錄在任何地方,或者如果任何人之前有問題。

據我所知,它沒有正式成文,但對一個IPC通話的內容〜1MB的限制,無論怎麼說也是完成(AIDL,廣播Intent等)或數據是什麼(字符串,位圖,其他形式的字節數組等)。

有誰知道我怎麼能輕易返回這麼大的字符串?

使用文件。如果你願意,服務通過ContentProvideropenFile()文件,供應Uri在AIDL響應的內容。

0

是的,它是有限的。

不要直接發送字符串,做的最好的事情是它存儲在SQLite然後打電話回你需要的地方的字符串。

相關問題