如何知道android.os.TransactionTooLarge与否

How to know android.os.TransactionTooLarge or not

我试图在这里传递超过 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);

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

我不确定你说的是什么数据类型,但你必须保留它然后分享它(比如某种 url)

如果您确实需要测量字符串或位图的大小,您可以获取其字节数组并按照 this link.

进行计数

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

如果您需要保持对象完好无损,即使应用程序的进程终止,那么您唯一的选择就是保留它。