Intent 传递数据的限制大小
2017-08-10 本文已影响0人
Green_Apple
今天无意中看到这个问题,苦于搜索没有答案。
外面众说纷纭,有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是可通过的
1024256则是启动Activity后 界面没有展示也无响应,就是空白一片
1024*512则是程序直接闪退
所以推断结果应该是10242562(一个字符2个字节)
为什么是这个数,在启动Activity过程Intent也会携带一些数据
限制大小应该是512K