0
運行我的android應用程序,我得到上面提到的錯誤,然後我調試的手機變得沒有響應,直到我強制重新啓動它。這是造成錯誤發生的代碼是在這個類:我該如何解決說DeferFlushOpWorker的錯誤:超時等待ops刷新? Android
public class BitmapSerializable implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 6855267020377781806L;
private transient Bitmap image;
private byte[] imageByteArray;
public BitmapSerializable()
{
}
public BitmapSerializable(Bitmap bmp)
{
setImage(bmp);
}
public Bitmap getImage() {
if (imageByteArray == null)
{
return null;
}
image = BitmapFactory.decodeByteArray(imageByteArray, 0, imageByteArray.length);
return image;
}
public void setImage(Bitmap image) {
this.image = image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, baos);
imageByteArray = baos.toByteArray();
}
}
錯誤被拋出時,序列化這個對象,讀它放回,然後調用的getImage()方法。誰能幫忙?
爲什麼你需要一個可串行化的位圖?考慮到位圖已經實現了parcelable的事實。 – yorkw 2013-03-08 03:55:31
來自http://developer.android.com/reference/android/os/Parcel.html: 包裹不是一個通用的序列化機制。該類(以及用於將任意對象放入Parcel的相應Parcelable API)被設計爲高性能IPC傳輸。因此,將任何Parcel數據放入持久性存儲中是不恰當的:Parcel中任何數據的底層實現中的更改都會導致舊數據無法讀取。 – 2013-03-08 04:06:51