2017-07-26 63 views
3

有什么方法可以知道以字节为单位的分组大小?我在问这个问题的意思是我在onSaveInstanceStatebundle中保存了可以列出的对象列表。以字节为单位的分组大小

我需要检查包的大小是否达到了它的大小限制,并防止保存更多的数据,并防止发生异常。

回答

3

我觉得对我来说最简单的方法是:

fun getBundleSizeInBytes(bundle : Bundle) : Int { 
    val parcel = Parcel.obtain() 
    parcel.writeValue(bundle) 

    val bytes = parcel.marshall() 
    parcel.recycle() 

    return bytes.size 
} 
0

包裹类有数据尺寸()成员,所以无需调用马歇尔()来达到同样的效果:

int getBundleSizeInBytes(Bundle bundle) { 
    Parcel parcel = Parcel.obtain(); 
    int size; 

    parcel.writeBundle(bundle); 
    size = parcel.dataSize(); 
    parcel.recycle(); 

    return size; 
} 
相关问题