How can I save my arraylist of objects so they are restored when app restarts. I have tried to store it in bundle and restore it using savedinstancestate but everytime I restart the app, all data is gone and it starts from beginning(with empty list).
my code for Area class is
 public class Area implements Parcelable {
// region Properties
public String id;
public String name;
public double latitude;
public double longitude;
public float radius;
// end region
// region Public
//creates a named area
public Area(String name, double latitude, double longitude, float radius){
    this.id = UUID.randomUUID().toString();
    this.name = name;
    this.longitude= longitude;
    this.latitude = latitude;
    this.radius = radius;
}
// endregion
public Area(Parcel in){
    id = in.readString();
    latitude = in.readDouble();
    longitude = in.readDouble();
    name = in.readString();
    radius = in.readFloat();
}
   //getters
public String getId(){return id;}
public double getLatitude(){return latitude;}
public double getLongitude(){return longitude;}
public float getRadius(){return radius;}
public String getName(){return name;}
    //setters
public void setName(String name){this.name = name;}
public void setLatitude(double latitude){this.latitude=latitude;}
public void setLongitude(double longitude){this.longitude=longitude;}
public void setRadius(float radius) {
    this.radius = radius;
}
@Override
public int describeContents() {
    return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(id);
    dest.writeDouble(latitude);
    dest.writeDouble(longitude);
    dest.writeString(name);
    dest.writeFloat(radius);
}
public static final Parcelable.Creator<Area> CREATOR = new Parcelable.Creator<Area>()
{
    public Area createFromParcel(Parcel in)
    {
        return new Area(in);
    }
    public Area[] newArray(int size)
    {
        return new Area[size];
    }
};
@Override
public String toString(){return this.name + "       " + this.radius;}
// endregion
}
Used this method for saving and restoring in bundle
 @Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
    super.onSaveInstanceState(savedInstanceState);
    // Here you can save your data
    // If you want to store your ArrayList, it should implement Parselable
    savedInstanceState.putParcelableArrayList("STORE_KEY", areas);
}
/**
 * Restoring data
 */
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
    super.onRestoreInstanceState(savedInstanceState);
    areas = savedInstanceState.getParcelableArrayList("STORE_KEY");
}
}
Oncreate method is
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    areas = new ArrayList<Area>();
    if(savedInstanceState != null){
       areas = savedInstanceState.getParcelableArrayList("STORE_KEY");
    }
    if (areas.isEmpty()) {
        Log.d("area list lala", "is empty");
    }
    else {
        for (int i = 0; i < areas.size(); i++) {
            Log.d("area list lala", areas.get(i).getName());
            Log.d("area list lala", String.valueOf(areas.get(i).getRadius()));
        }
    }
There is also overrided onresume function
 @Override
protected void onResume() {
    super.onResume();
}