求证 intent传递大数据限制

实例1:传递一个大数据StringList

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.xuan.realm.utils.LogUtils;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {
    private ArrayList list = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10_0000; i++) {
                    list.add(String.valueOf(i));
                }
            }
        }).start();
    }


    public void onTestActivity(View v) {
        TestActivity.launch(this, list);
    }
}


import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

import com.xuan.realm.utils.LogUtils;

import java.util.ArrayList;

/**
 * @author xuanyouwu
 * @email [email protected]
 * @time 2016-05-08 16:08
 */
public class TestActivity extends AppCompatActivity {
    private static final String KEY_STR_LIST = "str_list";

    public static void launch(Context context, ArrayList stringList) {
        Intent intent = new Intent(context, TestActivity.class);
        intent.putStringArrayListExtra(KEY_STR_LIST, stringList);
        context.startActivity(intent);
    }

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LogUtils.d("------>getStrList:" + getIntent().getStringArrayListExtra(KEY_STR_LIST));
    }
}

运行平台 avd  android 5.0 ram 1G:

异常: Caused by: android.os.TransactionTooLargeException: data parcel size 1996316 bytes

也就是不能超过1.9M 



运行平台htc x920e  android 4.4 ram 2G:

异常黑屏 TransactionSize: scheduleLaunchActivity(), TransactionTooLargeException, data size = 1997332

比上一次大一点点 也近似1.9M

你可能感兴趣的:(android,开发)