防止硬件后退按钮上传到前一页

时间:2017-06-20 11:50:21

标签: android reactjs react-native

此问题之前已在this

中提出

但是,componentDidMound()方法会阻止呈现页面。 我已将BackAndroid更改为BackHandler但我无法管理它。

另外,ToastAndroid是什么?

编辑:  我用过

componentWillUnmount(){
        BackHandler.removeEventListener('hardwareBackPress', function() { preventClose(); });
    }

componentDidMount() {
            BackHandler.addEventListener('hardwareBackPress', function() { preventClose(); });
      }
preventClose(){
    BackHandler.exitApp();
}

但它有错误。当我从我的页面移动到另一个页面时,如果我按下后退按钮,我会立即关闭该应用程序。 (我不希望这种情况发生。我只是想阻止用户从主屏幕返回,而不是其他堆栈屏幕。)

3 个答案:

答案 0 :(得分:7)

这应该是非常基本的。在您的活动中,您只需覆盖onBackPressed()方法。

@Override
public void onBackPressed() {
    // super.onBackPressed(); <- this line of code will make you go back to the previous "page"

    // now you can insert additional code, if you want to do it.
}

只要您不添加super.onBackPressed();,就会阻止其返回上一页。

答案 1 :(得分:2)

您可以简单地覆盖onBackPressed()和注释超级方法。

@Override
public void onBackPressed() {

    // super.onBackPressed(); -> Just comment that line this will prevent device back button action.
}

感谢。

答案 2 :(得分:1)

正如其他人所提到的,你可以覆盖onBackPressed()方法并让它为空。然后后退按钮没有功能。

如果您在两个活动之间切换且用户不应该返回第一个活动,您也可以完成第一个活动,然后您不需要覆盖onBackPressed。

您可以在开始新活动后调用finish()方法完成一项活动。