在我的應用程序中,我想在兩個活動之間傳遞Parcelable
對象(或Parcelable[]
)的ArrayList
。在第一個活動中,我調用restservice來獲取json數據,然後使用gson獲取List
的Parcelable
對象,然後使用putParcelableArrayListExtra(...)
將該列表發送到第二個活動。所有的工作都很好,直到列表的大小大約爲1000,但超過這個大小,我得到一個ANR,即使我等了幾分鐘,應用程序也不會恢復。Android使用Parcelable在活動之間發送數據
有沒有解決這個問題的方法?是否由於將對象放置到意圖的大小限制?
我知道我可以通過JSON字符串,然後獲得第二個活動的列表,但我更喜歡先做這種操作。
我敢肯定,ANR是由於大parcelable因爲網絡的要求完成成的AsyncTask和retreiving結果後,我把結果的意圖,並開始新的活動,這將不會出現。 .. – danidif 2012-02-02 16:01:04
@danidif然後,如果是這樣的話,你必須排除故障,看看究竟發生了什麼(使用StrictMode,Traceview等)。我懷疑你的內存不足,這就是爲什麼我建議反序列化(並寫入存儲)而不是傳遞它。 – 2012-02-02 16:07:39
它也嘗試將整個json strig傳遞給Intent,並在第二個活動中使用gson獲取對象,結果是:JAVA FAILED BINDER TRANSACTION ... – danidif 2012-02-02 16:12:12