I saw the notice about the syncronization of the Vector type, but it didn't help me find a solution to the problem. What I believe i need to do is... lock the ArrayList, Vector whatever update the ArrayList unlock the ArrayList but I don't know how to accomplish this.
On Tuesday, July 3, 2012 1:36:58 PM UTC-7, RichardC wrote: > I don't think Vector is thread safe in the way you expect did you read: > > *"This class is equivalent to > ArrayList<http://developer.android.com/reference/java/util/ArrayList.html> > with > synchronized operations. This has a performance cost, and the > synchronization is not necessarily meaningful to your application: > synchronizing each call to get, for example, is not equivalent to > synchronizing on the list and iterating over it (which is probably what you > intended). If you do need very highly concurrent access, you should also > consider > CopyOnWriteArrayList<http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArrayList.html> > . " > * > http://developer.android.com/reference/java/util/Vector.html > > The implication of the above is that your Vector change be changed from > another thread whilst you are trying to serialize it. > > > On Monday, July 2, 2012 8:52:46 PM UTC+1, alex b wrote: >> >> I have an activity that contains a private Vector<myobject>, thread safe >> version of ArrayList. The activity adds items to the ArrayList, and in >> onSaveInstanceState() I save the data (see code below). The problem is >> that it looses items and it seems to have after the GC runs. So what am I >> missing? >> >> >> private static RecentItems _lstRecent; >> >> @Override >> public void onCreate(Bundle savedInstanceState) { >> >> super.onCreate(savedInstanceState); >> setContentView(R.layout.main); >> >> restoreRecents(savedInstanceState); >> } >> >> @Override >> protected void onSaveInstanceState(Bundle outState){ >> super.onSaveInstanceState(outState); >> >> String s=serializeIt(_lstRecent); >> bundle.putString("lstRecent", s); >> } >> >> @Override >> protected void onRestoreInstanceState(Bundle outState){ >> super.onSaveInstanceState(outState); >> >> this.restoreRecents(outState); >> } >> >> private void restoreRecents(Bundle bundle){ >> if (bundle!=null){ >> String s = bundle.getString("lstRecent"); >> _lstRecent=deserializeIt(s); >> } >> >> if (_lstRecent ==null) >> _lstRecent=new RecentItems();//unt >> >> } >> >> -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

