BackAndroid 'hardwareBackPress' 事件不起作用

Posted

技术标签:

【中文标题】BackAndroid \'hardwareBackPress\' 事件不起作用【英文标题】:BackAndroid 'hardwareBackPress' event is not workingBackAndroid 'hardwareBackPress' 事件不起作用 【发布时间】:2016-01-01 10:00:24 【问题描述】:

根据 react-native docs Backandroid 带有简单回调的组件不应允许在按下后退按钮时退出应用程序,但看起来根本没有调用事件侦听器。

BackAndroid.addEventListener('hardwareBackPress', function() 
  return true;
);

应该改变什么以允许事件侦听器触发?

【问题讨论】:

你把这段代码放在了什么地方? 【参考方案1】:

在原来github issue的基础上,Satyajit Sahoo提供了一个可行的解决方案:

将以下内容添加到 MainActivity.java:

@Override
public void onBackPressed() 
    if (mReactInstanceManager != null) 
        mReactInstanceManager.onBackPressed();
     else 
        super.onBackPressed();
    

【讨论】:

我相信 Yevgen 正在询问如何在 React Native 中做到这一点。你已经用 Java 描述了 Android 原生 onBackPressed【参考方案2】:

你错过了 this.goBack();在你返回 true 之前。

BackAndroid.addEventListener('hardwareBackPress', function()  
    this.goBack(); 
    return true; 
);

【讨论】:

以上是关于BackAndroid 'hardwareBackPress' 事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

react native 之 Android物理返回键

如何在 appState 更改时重新加载 react-native-webview 内容