/* $Id: $ */ package com.oreilly.demo.android.pa.serialize; import java.io.Serializable; import android.app.Activity; import android.os.Bundle; import android.os.Parcel; import com.oreilly.android.demo.pa.serialize.R; /** * * @version $Revision: $ * @author <a href="mailto:bmeike@callmeike.net">Blake Meike</a> */ public class JSerialize extends Activity { /** Bundle tag for app state */ public static final String APP_STATE = "com.oreilly.android.app.state"; static class AppState implements Serializable { // definitions, getters and setters // for application state parameters here. // ... } private AppState applicationState; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedAppState) { super.onCreate(savedAppState); applicationState = (null == savedAppState) ? new AppState(/* ... */) : (AppState) savedAppState.getSerializable(APP_STATE); setContentView(R.layout.main); Bundle bundle = new Bundle(); bundle.putFloat(APP_STATE, 3.14159F); Parcel p = Parcel.obtain(); p.writeBundle(bundle); p.setDataPosition(0); bundle = p.readBundle(); bundle.getInt(APP_STATE); } /** * @see android.app.Activity#onSaveInstanceState(android.os.Bundle) */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putSerializable(APP_STATE, applicationState); } }