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

Reply via email to