我有一个可发布的类,它试图发送一些相机预览信息。所以我需要将几个byte []数据从一个活动发送到另一个活动。我使用Parcelable
与此代码:在活动之间分享大量数据
public class CameraResult implements Parcelable
{
private byte[] imagesList;
public CameraResult() {}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeByteArray(imagesList);
}
public byte[] getImageList() {
return imagesList;
}
public void setImageList(byte[] results) {
this.imagesList = results;
}
public static final Parcelable.Creator<CameraResult> CREATOR = new Creator<CameraResult>() {
@Override
public CameraResult[] newArray(int size) {
return new CameraResult[size];
}
@Override
public CameraResult createFromParcel(Parcel source) {
CameraResult toReturn = new CameraResult();
int imageListSize = source.readInt();
if (imageListSize != 0)
{
byte[] tempImageList = new byte[imageListSize];
source.readByteArray(tempImageList);
toReturn.setImageList(tempImageList);
}
return toReturn;
}
};
}
这Parcelable
类是工作的罚款。但是,当我尝试发送更大量的数据时,通信Intent
不起作用,因为我超过了最大数据大小。
我读了this link和this other link与一些假设的方式来解决我的问题。但我想知道是否有可能使用Parcelable
来发送更多的数据,如果不能,那么上述哪种方式是最合适的。
谢谢。
作为一个建议,为什么你不使用2个片段与一个共同的活动?这样你不能使用这种形式的沟通活动,并且不会有任何发送涉及。\ – Droidekas 2015-02-23 08:52:40
片段是不是因为某些原因,我为什么我放弃他们。 – Sonhja 2015-02-23 09:23:41