android异常过大引起(数据包2076400字节)

Caused by android too large exception (data parcel 2076400 bytes)

尝试使用 intent extras 将哈希映射数据传递给另一个 activity 给出事务过大异常错误。(数据包 2076400 字节)

这是将地图数据传递给另一个收到错误的 activity 的代码。

if {

    mCountDownTimer =   new CountDownTimer(2000, 1000) {
    public void onTick(long millisUntilFinished) {}

    public void onFinish() {
        Intent intent = new Intent(Main2Activity.this, 
        ShowImagesActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
        Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("hashMap", map);
        startActivity(intent);
        if(Splash.Getproduct ==null) {
            if (mInterstitialAd.isLoaded()) 
             mInterstitialAd.show();
       }.start();
    }
}

如何避免这种情况并将此数据发送到另一个 activity。

您可以通过 Intent 发送的数据量是有限制的。 它是 1 MB。理想情况下,您应该只通过意图发送几 KB 的数据。

您的数据大小约为 2 MB,超出了此限制。 如果您打算传递这么多数据,您也可以将其保存在数据库或内存数据存储中。

Binder 事务缓冲区有固定大小限制,目前为 1MB,由进程的所有正在进行的事务共享。由于此限制是在进程级别而不是每个 activity 级别,因此这些事务包括应用程序中的所有活页夹事务,例如 onSaveInstanceState、startActivity 以及与系统的任何交互。当超过大小限制时,将抛出 TransactionTooLargeException。

https://developer.android.com/guide/components/activities/parcelables-and-bundles