在我的应用程序中,我想在两个活动之间传递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