【发布时间】:2016-10-16 09:28:22
【问题描述】:
问题描述:
我的应用有主要活动和设置活动。每次关闭 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();
}
}
【问题讨论】:
-
也许你应该阅读一下启动器模式developer.android.com/guide/topics/manifest/…
-
recreate 中写的代码是什么?
-
我也有这个问题。但并非在所有设备上!在所有模拟器(我测试过的)中,它都能正常工作;在物理设备中没有。我不明白发生了什么。
-
你能发布这个活动的完整代码吗?
-
你找到那个解决方案了吗?
标签: android back-button onbackpressed recreate