Android Bundle存储数据类型

曾经被问到这样一个问题:Bundle能存哪些数据类型,不能存哪些数据类型?

当时那个汗啊,因为,平常使用Bundle,要么使用基本数据类型,要么序列化自定义的Class,那到底能存哪些类型,不能存哪些呢?

今天查阅了下google官方的文档(http://developer.android.com/reference/android/os/Bundle.html),罗列了以下这些是可以的:

void  putAll(Bundle map) 
void  putBinder(String key, IBinder value) 
void  putBoolean(String key, boolean value) 
void  putBooleanArray(String key, boolean[] value) 
void  putBundle(String key, Bundle value) 
void  putByte(String key, byte value) 
void  putByteArray(String key, byte[] value) 
void  putChar(String key, char value) 
void  putCharArray(String key, char[] value) 
void  putCharSequence(String key, CharSequence value) 
void  putCharSequenceArray(String key, CharSequence[] value) 
void  putCharSequenceArrayList(String key, ArrayList<CharSequence> value) 
void  putDouble(String key, double value) 
void  putDoubleArray(String key, double[] value) 
void  putFloat(String key, float value) 
void  putFloatArray(String key, float[] value) 
void  putInt(String key, int value) 
void  putIntArray(String key, int[] value) 
void  putIntegerArrayList(String key, ArrayList<Integer> value) 
void  putLong(String key, long value) 
void  putLongArray(String key, long[] value) 
void  putParcelable(String key, Parcelable value) 
void  putParcelableArray(String key, Parcelable[] value) 
void  putParcelableArrayList(String key, ArrayList<? extends Parcelable> value) 
void  putSerializable(String key, Serializable value) 
void  putShort(String key, short value) 
void  putShortArray(String key, short[] value) 
void  putSparseParcelableArray(String key, SparseArray<? extends Parcelable> value) 
void  putString(String key, String value) 
void  putStringArray(String key, String[] value) 
void  putStringArrayList(String key, ArrayList<String> value) 

一目了然:MAP,基本数据类型,基本数据类型数组,Parcelable类型及Parcelable类型数组,Serializable类型(无Serializable类型数组!),ArrayList

从以上发现,数据存储在连续的内存地址上的可以使用,其它存储方式不行(如链表存储就不行)。

如果有说错的地方,希望大家纠正,谢谢!

原文地址:https://www.cnblogs.com/james1207/p/3400116.html