zoukankan      html  css  js  c++  java
  • react native Android返回键监听BackHandler

    根据文档,BackHandler可以监听Android设备的返回键,在iOS设备不起作用。

    BackHandler有三个方法:

    exitAPP(),

    addEventListener(eventName, handler),

    removeEventListener(eventName, handler).

    运用BackHandler可以实现按下返回键时不退出APP,而只是返回导航栈的上一页。

    在定义导航栈navigator的地方添加代码:

    添加事件监听函数:

       componentWillMount() {
            if (Platform.OS === 'android') {
                BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
            }
        }
        componentWillUnmount() {
            if (Platform.OS === 'android') {
                BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);
            }
        }

    定义监听函数:

        onBackAndroid = () => {
            const routers = nav.getCurrentRoutes();
            if (routers.length > 1) {
                nav.pop();
                return true;
            }else{
                let time = new Date();
                this.lastBackPressed = this.thisBackPressed;
                this.thisBackPressed = time.getTime();
    
                if (this.lastBackPressed && this.lastBackPressed + 2000 >= this.thisBackPressed) {
                    //最近2秒内按过back键,可以退出应用。
                    return false;
                }
                ToastAndroid.show('再按一次退出应用', ToastAndroid.SHORT);
                return true;
            }
        };
  • 相关阅读:
    如何看Linux服务器的load average
    java中File读取文件中文乱码
    LR代理录制
    虚拟机打开虚拟文件报不兼容,无法使用
    面向对象示例-注册登录例子
    pickle 模块
    item方法
    加密方法
    @classmethod 和 @staticmethod 用法
    python 中 @property 的用法
  • 原文地址:https://www.cnblogs.com/yulian/p/8676577.html
Copyright © 2011-2022 走看看