我想估计在捆绑中编写可打包对象所需的时间。我创建了自己的 parcelable 类(只有两个属性:一个 int 和一个 String),我编写了一个简短的应用程序,将我的 parcelable 类的 500 000 个对象实例化,将它们放入一个 ArrayList,将 ArrayList 写入一个包中,然后读取来自同一个包的 ArrayList。
我很惊讶地看到写和读这个相当大的列表是即时的。(每次0ms)
这样的 ArrayList 可以“立即”编写,还是我做错了?
...
private static final int TEST_SIZE = 500000;
...
mList = new ArrayList<MyParcelableClass>();
for(int i=0; i<TEST_SIZE; i++){
mList.add(new MyParcelableClass(i));
}
...
Bundle testBundle = new Bundle();
mStartTime = System.currentTimeMillis();
testBundle.putParcelableArrayList("test", mList);
logTime("parcelableArrayList writing");
//parcelableArrayList writing 0ms
ArrayList<MyParcelableClass> deserialization = new ArrayList<MyParcelableClass>();
mStartTime = System.currentTimeMillis();
deserialization = testBundle.getParcelableArrayList("test");
logTime("parcelableArrayList reading");
//parcelableArrayList reading 0ms
private void logTime(String msg){
long time = System.currentTimeMillis() - mStartTime;
log(msg + " " + String.valueOf(time) + " ms");
}
private void log(String msg){
Log.i(TAG, msg);
}