Android:writeToParcel发出溢出错误

时间:2013-08-29 23:39:47

标签: android parcelable

我正在尝试在方向更改上保存自定义视图(DrawView)。 当方向改变时,代码工作得非常好,但是当我最小化屏幕或按下我的设备上的主页按钮时,我得到堆栈溢出错误...你能帮忙吗? 感谢..

我的主要活动实现了这两种方法

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putParcelable("drawView", drawView);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    drawView = savedInstanceState.getParcelable("drawView");
    super.onRestoreInstanceState(savedInstanceState);
}

我的自定义视图:DrawView实现了Parcelable并覆盖了这些方法。

public class DrawView extends View implements OnTouchListener, Parcelable {
.........

@Override
public int describeContents() {
      return 0;
    }

@Override
public void writeToParcel(Parcel parcel, int i) {
        parcel.writeParcelable(this, i);
}

public void readFromParcel(Parcel in) {
        DrawView object1  = in.readParcelable(DrawView.class.getClassLoader());
}

我得到的例外是:  E / AndroidRuntime:致命异常:主要         java.lang.StackOverflowError的         DrawView.writeToParcel(DrawView.java:261)         在android.os.Parcel.writeParcelable(Parcel.java:1254)         DrawView.writeToParcel(DrawView.java:261)         在android.os.Parcel.writeParcelable(Parcel.java:1254)         DrawView.writeToParcel(DrawView.java:261)         在android.os.Parcel.writeParcelable(Parcel.java:1254)

0 个答案:

没有答案