java - android.os.Bundle somehow saves and restores transient fields -


i'm trying make android game , have troubles overcome activities' lifecycle. simple thing want achieve is, activity restores same state after becoming foreground upon screen lock / config changes / focusing app.

to make simple, main contentview represented class:

public class gamepanel extends surfaceview implements surfaceholder.callback, view.ontouchlistener, serializable 

among few others, contains transient field

transient hashmap<class, hashset<gameobject>> gameobjects

i use onsaveinstancestate(bundle outstate) store gamepanel maingamepanel outstate.putserializable("maingamepanel", maingamepanel);

after restoring via onrestoreinstancestate(bundle savedinstancestate), code

maingamepanel = (gamepanel) savedinstancestate.get("maingamepanel"); ((viewgroup) maingamepanel.getparent()).removeview(maingamepanel); log.i("size of transient field member", "" + maingamepanel.gameobjects.size()); 

produces same number in logcat size of transient hashmap before restoring. in other words, gamepanel completely restored , have no idea why. class gameobject not serializable, nor parcellable , contains bitmap , other custom not serializable stuff. upon removeing transient tag, app produces error.

ps: please ignore unappropriate use of tag.


Comments