title: android- putParcelableArrayList in CountDownTimer put same value on List returned
body: <p>I try to get val from AudioRecord in a countDown but when I get the list extra in the Activity, contains same value (I have already checked that AudioRecord returns me differents values). Please help me!. Thanks in advance.
  Note: I call the countDown passing it 45 * 1000 and 100</p>
  
  <pre><code>// Class of CountDownTimer
  dataValues = new ArrayList&lt;Data&gt;();
  (MenuActivity)context).runOnUiThread(new Runnable() {
          @Override
          public void run() {
              new CountDownTimer(millis, intervalInMillis){
                  @Override
                  public void onTick(long millisUntilFinished) {
                          firstValues.add(val); // val from AudioRecord
                     if (firstValues.size() &gt;=10){
                          firstValues.remove(0);
                          data.setValue(avgFromIntList(firstValues));
                          data.setTime(new Date().getTime());
                          dataValues.add(data);
  
                      }
                  }
  
                  @Override
                  public void onFinish() {
                      Bundle extras = new Bundle();
  
                      extras.putLong("idSession", session.getId());
                      extras.putParcelableArrayList("values",dataValues);
  
                      Intent toPast = new Intent(context, SessionPastActivity.class);
                      toPast.putExtras(extras);
                      context.startActivity(toPast);
  
                  }
              }.start();
          }
      });
  
  
  // Model class that implement Parcelable
  </code></pre>
  
  <p>public class Data implements Parcelable {</p>
  
  <pre><code>private Integer value; 
  private Long time;
  
  public Data(Integer value, Long time) {
      this.value = value;
      this.time = time;
  }
  
  public Data() {
  }
  
  
  
  public Integer getValue() {
      return value;
  }
  
  public void setValue(Integer value) {
      this.value = value;
  }
  
  public Long getTime() {
      return time;
  }
  
  public void setTime(Long time) {
      this.time = time;
  }
  
  
  
  @Override
  public String toString() {
      return "Data{" +
              ", value=" + value +
              ", time=" + time +
              '}';
  }
  
  @Override
  public int describeContents() {
      return 0;
  }
  
  @Override
  public void writeToParcel(Parcel dest, int flags) {
  
      dest.writeInt(value);
      dest.writeLong(time);
  
      Log.e("inWrite", toString());
  }
  
  // this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods
  public static final Parcelable.Creator&lt;Data&gt; CREATOR = new Parcelable.Creator&lt;Data&gt;() {
      public Data createFromParcel(Parcel in) {
          return new Data(in);
      }
  
      public Data[] newArray(int size) {
          return new Data[size];
      }
  };
  
  // example constructor that takes a Parcel and gives you an object populated with it's values
  private Data(Parcel in) {
  
      value = in.readInt();
      time = in.readLong();
  
      Log.e("inREAD", toString());
  }
  </code></pre>
  
  <p>// Activity class</p>
  
  <p>ArrayList  values_amplitude =  getIntent().getExtras().getParcelableArrayList("values");</p>