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