我有一個可發佈的類,它試圖發送一些相機預覽信息。所以我需要將幾個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