1

I am trying to save my custom view (DrawView) on Orientation change. The code works perfectly fine when the orientation changes but when i minimize the screen or press home button on my device I get the stack overflow error... Can you please help with this? thanks..

My main activity implements these two methods

@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);
}

My custom view: DrawView implements Parcelable and overrides these methods.

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());
}

The exception I am getting is: E/AndroidRuntime: FATAL EXCEPTION: main java.lang.StackOverflowError DrawView.writeToParcel(DrawView.java:261) at android.os.Parcel.writeParcelable(Parcel.java:1254) DrawView.writeToParcel(DrawView.java:261) at android.os.Parcel.writeParcelable(Parcel.java:1254) DrawView.writeToParcel(DrawView.java:261) at android.os.Parcel.writeParcelable(Parcel.java:1254)

Parampal Pooni
  • 2,958
  • 8
  • 34
  • 40

0 Answers0