如何知道android.os.TransactionTooLarge与否

时间:2017-12-06 08:25:01

标签: android runtimeexception

我试图在这里传递超过1Mb的数据,数据可能是位图或字符串所以,应用程序抛出的android.os.TransactionTooLarge异常但是低于24 API级别这是一个简单的警告但是> = 24 API它会创建应用程序崩溃级别,所以,我怎么知道这个事务是否有效,否则有任何可用的API表示此事务是否有效?我事先知道交易是否有效?

例如,

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is too long string data...");
startActivity(sendIntent);

2 个答案:

答案 0 :(得分:0)

它不是api依赖,它是一个捆绑限制,你不能传输超过1MB的数据。

我不确定您正在谈论的数据类型,但您必须坚持它然后分享它(就像某种网址)

答案 1 :(得分:0)

如果你真的需要测量字符串或位图的大小,你可以得到它的字节数组并按照this link计算。

在您的情况下,您可能不应该在活动之间以捆绑方式传递这些对象。相反,您可以将它放在Singleton对象中,将其放在LRU缓存中或保留它。

如果你需要保持你的对象完好无损,即使应用程序的进程已经死亡,那么你唯一的选择就是坚持它。