问题描述:
我的应用程序有主要活动和设置活动。每次关闭 Settings Activity 后,Main Activity 都会重新创建。
主 Activity 可以通过 finish() 在两个地方关闭(应用程序退出):操作栏中的主页按钮和返回按钮(硬件或弹出栏)。
主页按钮正常工作,后退按钮在开始时工作,但如果用户在设置活动中,将其关闭并返回主活动,则不再调用 onBackPressed() 函数。
如果我删除娱乐,后退按钮可以正常工作,就像主页按钮一样。
因此,如果有人知道为什么 recreate() 会弄乱后退按钮?
谢谢。
部分相关代码:
主要活动:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Open Settings Activity
case R.id.menuSettings:
Intent intent = new Intent(this, SettingsActivity.class);
startActivityForResult(intent, REQUEST_SETTINGS);
return true;
// Close the App
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) {
return;
}
switch (requestCode) {
case REQUEST_SETTINGS:
// Recreate activity
recreate();
break;
}
}
// Close App on Back Button Click
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
}