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
Post a Comment