Intent 传递数据的限制大小

今天无意中看到这个问题,苦于搜索没有答案。
外面众说纷纭,有2M的有1M的,也有512K和来自知乎的40K

就自己实测一下,Android 7.0 小米5手机

通过构件字符串进行简单的实测

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent=new Intent(this,SecondActivity.class);
    intent.putExtra("data",getString());

    startActivity(intent);
}

private String getString(){
    StringBuilder sb=new StringBuilder();
    for(int i=0;i<1024*250;i++){
        sb.append("a");
    }
    return sb.toString();
}

}

在测试过程中
1024250是可通过的
1024
256则是启动Activity后 界面没有展示也无响应,就是空白一片
1024*512则是程序直接闪退

所以推断结果应该是10242562(一个字符2个字节)
为什么是这个数,在启动Activity过程Intent也会携带一些数据

限制大小应该是512K

你可能感兴趣的:(Intent 传递数据的限制大小)