实例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<String> 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 xuanyouwu@163.com
* @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<String> 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