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

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

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

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

解决方法

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

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

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...