当尝试获取安装的应用程序列表时,android – TransactionTooLargeEception

作为我的应用程序的一部分,我通过使用ApplicationPackageManager.getInstalledApplications获取设备上安装的应用程序的列表,但对于一些用户,我收到崩溃报告说

android.osBinderProxy.tranasact(Native Method)中的TransactionTooLargeException

有人会想到为什么会这样吗?

解决方法

这种异常在正常情况下难以繁殖.当传输数据时IPC内存耗尽时,您将收到此异常.这可能发生在这两种情况下,服务正在尝试将数据发送到客户端或客户端正在将数据发送到服务.很可能您的一些用户可能安装了大量的应用程序,这导致数据大小大于1MB(这是IPC缓冲区的大小).

我恐怕在这种情况下,你不会做任何更好的事情.但是,如果您正在执行类似于ApplyBatch的操作,则可以将一个大事务分隔成多个较小的事务.

还有看看这个线程What to do on TransactionTooLargeException

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...