如何保留单个活动?
问题描述:
我有一个游戏有两个活动:一个是启动,一个按钮指导用户到另一个游戏。如何保留单个活动?
在游戏中,用户我按回以返回到启动。当用户再次点击按钮而不调用onCreate()时如何启动前一个游戏?
游戏由startActivity()启动。
大部分工作都是游戏视图,所以我想保持游戏状态而不需要再次初始化。
我试过singleTop/singleTask和意图标志与FLAG_ACTIVITY_REORDER_TO_FRONT。他们都再次触发Game的onCreate()。
谢谢。
答
默认情况下,后退按钮完成活动,因此您不能“返回”它。您需要保存您的游戏状态,然后在用户重新进入游戏时从onCreate内恢复游戏状态。或者,您可以重写后退按钮以显示弹出式选项列表(退出,新游戏,查看高分等),以便游戏本身不会从顶部弹出。然后再次点击后退按钮(或恢复游戏)将删除该弹出式菜单,并调用“onResume()”而不是“onCreate()”(根据Activity Lifecycle)。
答
它总是会调用onCreate,但您可以调整它以重新创建状态(如果将其保存在onPause上,然后在onCreate和onResume中重新创建它)。查看活动生命周期的文档以获取更多信息。
通过覆盖降压按钮,你甚至可以开始超过你的活动。但它会很混乱。 保持状态的另一个解决方案可以使用自定义android.app.Application。它在任何活动之前创建并始终生活。 – Salw 2012-02-28 00:39:29
谢谢。我知道了。事实上,游戏维护一个网络连接线程,所以我必须在onDestroy()中终止它。 – pengguang001 2012-02-28 01:34:32