现在问题是,游戏中,锁屏,然后再解锁屏幕,游戏重新运行,没有继续运行..需要实现的功能是继续运行....
代码如下: 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);
}
各位大神指导一下,哪里出问题了.!

解决方案 »

  1.   

    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);
    }重新发一下代码...方便大家看
      

  2.   

    onSaveInstanceState()里保存你的游戏状态数据;
    onRestoreInstanceState()里恢复游戏状态数据;
    onPause()里保存游戏状态;
    onResume()里恢复游戏状态。
      

  3.   

    为什么我在游戏运行的时候.
    按下锁屏键之后,系统会调用 onSaveInstanceState  onRestoreInstanceState  这两个方法..
    按下HOME键  系统会调用   onSaveInstanceState
    按道理,按锁屏跟按HOME是一样的,只会调用一个方法啊
    这些方法里面,好像我不需要写什么东西把?
      

  4.   

    onPause
    onResume
    onSaveInstanceState
    onRestoreInstanceState
    你需要的是重载必要的函数来保存状态,框架在合适的时候会调用你,而不是你调用框架,你在BroadCastReveiver里的代码不知道想干嘛,还是先正确理解Activit生命周期相关的知识吧
      

  5.   

    你的问题解决了吗
    我想知道你在
    onPause
    onResume
    onSaveInstanceState
    onRestoreInstanceState
    这些方法里做了些什么?