此问题之前已在this
中提出但是,componentDidMound()方法会阻止呈现页面。
我已将BackAndroid
更改为BackHandler
但我无法管理它。
另外,ToastAndroid
是什么?
编辑: 我用过
componentWillUnmount(){
BackHandler.removeEventListener('hardwareBackPress', function() { preventClose(); });
}
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', function() { preventClose(); });
}
preventClose(){
BackHandler.exitApp();
}
但它有错误。当我从我的页面移动到另一个页面时,如果我按下后退按钮,我会立即关闭该应用程序。 (我不希望这种情况发生。我只是想阻止用户从主屏幕返回,而不是其他堆栈屏幕。)
答案 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()方法完成一项活动。