gpt4 book ai didi

android - recreate() 后 onBackPressed 不调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:29 30 4
gpt4 key购买 nike

问题描述:

我的应用有主 Activity 和设置 Activity 。每次关闭设置 Activity 后,主 Activity 都会重新创建。

Main Activity 可以在两个地方通过 finish() 关闭(应用程序退出):操作栏中的主页按钮和返回按钮(硬件或弹出栏)。

Home 按钮工作正常,Back 按钮在开始时工作,但如果用户在设置 Activity 中,关闭它并返回主 Activity,onBackPressed() 函数不再调用。

如果我删除娱乐,后退按钮可以正常工作,就像主页按钮一样。

如果有人知道为什么 recreate() 会弄乱后退按钮?

谢谢。

部分相关代码:

主要 Activity :

@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();
}

最佳答案

只需将 recreate() 方法替换为

finish();
startActivity(getIntent());

&看到魔法。您不需要重新设置任何 bundleintent

关于android - recreate() 后 onBackPressed 不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37832489/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com