android 关于锁屏,解屏之后游戏重新运行而不是继续运行

wangkui09 2012-03-19 11:12:28
现在问题是,游戏中,锁屏,然后再解锁屏幕,游戏重新运行,没有继续运行..需要实现的功能是继续运行....
代码如下:

public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startApp();
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
BroadcastReceiver mBatInfoReceiver = null;
registerReceiver(mBatInfoReceiver, filter);
mBatInfoReceiver = new BroadcastReceiver() {
public void onReceive(final Context context, final Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_ON.equals(action)) {
onRestoreInstanceState(savedInstanceState);
onResume();
Log.d("", "screen is on...");
} else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
Log.d("", "screen is off...");
onSaveInstanceState(savedInstanceState);
onPause();
}
}
};

}

public void onSaveInstanceState(Bundle savedInstanceState) {

super.onSaveInstanceState(savedInstanceState);
}

public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}




各位大神指导一下,哪里出问题了.!
...全文
596 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxp0205 2012-09-22
  • 打赏
  • 举报
回复
另外,模拟器锁屏,解锁正常。真机解锁则不行,是什么原因呢
lxp0205 2012-09-22
  • 打赏
  • 举报
回复
你的问题解决了吗
我想知道你在
onPause
onResume
onSaveInstanceState
onRestoreInstanceState
这些方法里做了些什么?
susemm 2012-03-19
  • 打赏
  • 举报
回复
onSaveInstanceState()里保存你的游戏状态数据;
onRestoreInstanceState()里恢复游戏状态数据;
onPause()里保存游戏状态;
onResume()里恢复游戏状态。
wangkui09 2012-03-19
  • 打赏
  • 举报
回复
救命啊!
wangkui09 2012-03-19
  • 打赏
  • 举报
回复
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startApp();
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
BroadcastReceiver mBatInfoReceiver = null;
registerReceiver(mBatInfoReceiver, filter);
mBatInfoReceiver = new BroadcastReceiver() {
public void onReceive(final Context context, final Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_ON.equals(action)) {
onRestoreInstanceState(savedInstanceState);
onResume();
Log.d("", "screen is on...");
} else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
Log.d("", "screen is off...");
onSaveInstanceState(savedInstanceState);
onPause();
}
}
};

}

public void onSaveInstanceState(Bundle savedInstanceState) {

super.onSaveInstanceState(savedInstanceState);
}

public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}

重新发一下代码...方便大家看
wangkui09 2012-03-19
  • 打赏
  • 举报
回复
7楼,我下午研究了半天,大概有点明白了......也谢谢你的指导..
z642010820 2012-03-19
  • 打赏
  • 举报
回复
onPause
onResume
onSaveInstanceState
onRestoreInstanceState
你需要的是重载必要的函数来保存状态,框架在合适的时候会调用你,而不是你调用框架,你在BroadCastReveiver里的代码不知道想干嘛,还是先正确理解Activit生命周期相关的知识吧
wangkui09 2012-03-19
  • 打赏
  • 举报
回复
手机没问题,手机上的其他游戏锁屏再解锁之后,继续运行,不是从新开始
sf_key 2012-03-19
  • 打赏
  • 举报
回复
这个可能和你手机有关,你的手机是不是在手机锁屏即进入省电模式后会自动清除一些进程呢?
wangkui09 2012-03-19
  • 打赏
  • 举报
回复
为什么我在游戏运行的时候.
按下锁屏键之后,系统会调用 onSaveInstanceState onRestoreInstanceState 这两个方法..


按下HOME键 系统会调用 onSaveInstanceState


按道理,按锁屏跟按HOME是一样的,只会调用一个方法啊


这些方法里面,好像我不需要写什么东西把?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧