Android:“后退”按钮的替代在库中不起作用

问题描述 投票:0回答:1

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

 @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个回答
0
投票

[您应该在处理压力时从true返回onOptionsItemSelected(在您的if盒内)。

现在,您无条件呼叫super.onOptionsItemSelected(item),这会在按回键时触发活动结束。

© www.soinside.com 2019 - 2024. All rights reserved.