java锁定手机重启游戏场景
我正在用AndEngine开发一款安卓游戏,目前最大的问题是当手机再次锁定和解锁时(大约一分钟或更长时间),游戏场景会重置
我做了很多搜索,大多数人建议使用应用程序关闭时调用的函数进行保存。我可以这样做,但节省了很多钱。然而,我确实知道这是可能的,因为这是在AndEngine示例中完成的。在AndEngine示例中,一个特别值得注意的事情是,当程序在前台时,手机被锁定,屏幕再次打开。再次按下电源键将关闭屏幕,直到游戏完全恢复后再次解锁
我浏览了清单文件和启动器源代码,复制并粘贴了一些东西,但仍然没有成功。解决方案似乎在清单文件中,因此这是我的一个程序,包括到目前为止的所有修改:
<manifest xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
package="com.example.andenginetest"
安卓:versionCode="1"
安卓:versionName="1.0" >
<uses-sdk
安卓:minSdkVersion="8"
安卓:targetSdkVersion="15" />
<uses-permission 安卓:name="安卓.permission.WAKE_LOCK"/>
<application
安卓:icon="@drawable/ic_launcher"
安卓:label="@string/app_name"
安卓:theme="@style/AppTheme" >
<activity
安卓:name=".MainActivity"
安卓:theme="@安卓:style/Theme.NoTitleBar.Fullscreen"
安卓:configChanges="orientation|keyboard|keyboardHidden"
安卓:label="@string/title_activity_main" >
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
尽管很多人都建议这样做,但这些都没有对这个问题产生任何影响。有人能告诉我我可能做错了什么吗?提前谢谢
# 1 楼答案
我猜这与活动的生命周期有关。 如图所示 http://developer.android.com/reference/android/app/Activity.html
有几种方法与暂停、停止和启动活动有关。 您应该覆盖
onPause()
和onResume()
方法,并在那里执行保存。 一旦onPause()
被调用,操作系统就可以选择终止您的活动,而无需您做任何事情这可能就是发生的情况,因此如果覆盖这些方法,您可以告诉应用程序在暂停时(也就是说,整个屏幕被另一个视图覆盖-锁定、电话呼叫或另一个应用程序等)和恢复时要做什么
希望这就是你的意思。 祝你好运
# 2 楼答案
我遇到了完全相同的问题,我在游戏活动的清单中添加了以下内容:
正如你所看到的,你的清单中没有屏幕方向,你可能只是在创建引擎时设置方向,不知道这是否会改变什么,但我就是这样做的,而且成功了
哦,别忘了设置onResumeGame和onPauseGame: