【问题标题】:Android: Override of Back button not working in LibraryAndroid:后退按钮的覆盖在库中不起作用
【发布时间】:2020-10-07 14:06:28
【问题描述】:

我有一个带有覆盖后退按钮方法的活动

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    Log.d(TAG, "onOptionsItemSelected");
    if (item.getItemId() == android.R.id.home)
        onBackPressed();
    Log.d(TAG, "onOptionsItemSelected: if executed");
    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed() {
    closeDialog();
}

在硬件按下后退按钮时向用户显示警报对话框效果很好。当用户授予权限时,活动就完成了。 但是,当用户单击工具栏中的后退箭头时,会显示对话框,但会调用活动 onPause()、onStop() 方法,并且会出现窗口泄漏,因为警报对话框可见并且活动被杀死。

如何解决这个问题?

注意:当我们不在清单文件中提供父活动时,不会发生这种情况!

【问题讨论】:

    标签: android android-manifest back-button-control


    【解决方案1】:

    当您处理新闻时(在您的if 案例中),您应该从onOptionsItemSelected 返回true。

    现在您正在无条件地拨打super.onOptionsItemSelected(item),这会触发活动在后按时完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多