2017-07-26 39 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; 
} 
相關問題