一直使用iPhone作为测试机开发,提交给测试同事Android版本后发现很多适配问题,其中一个非常明显的是,弹出一个modal后,点击Android的返回键,modal不会消失,直接navigation goBack了
在Android端需要处理物理按键事件 , 另外可以实现连续两次点击退出APP的功能
 componentDidMount(): void {       //挂载完,添加返回按键的监听        BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);    }    componentWillUnmount(): void {        //页面销毁时取消监听,防止内存泄漏        BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);    }    handleBackPress = () => {        if (this.props.navigation.isFocused()) {
       //判断modal是否正在显示
        if(this.state.modalVisible){
          this.setState({modalVisible:false});
          return true;
        }
if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) { //最近2秒内按过back键,表示用户想退出应用。 BackHandler.exitApp(); return true; } this.lastBackPressed = Date.now(); ToastAndroid.show('再按一次退出应用', ToastAndroid.SHORT); //提示再次按返回触发 return true; } };

 

更多相关文章

  1. Android异步加载图片中UI是否被阻塞的测试
  2. android 单元测试方法 类继承 Instrumentation
  3. [Android] 基于 Linux 命令行构建 Android(安卓)应用(五):Ant 构建
  4. android按键驱动开发实例1(修改一个按键)
  5. 关于Android直接连MySQL获取数据的真机测试的一些坑
  6. ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
  7. Activity生命周期+android测试类(2)
  8. android键盘输入读取
  9. android 触屏反馈原理

随机推荐

  1. Android与JS之间的互相调用交互(一)
  2. Android下生成core dump的方法
  3. android permission权限与安全机制解析(下
  4. android修炼大法
  5. android repo/git server 建立过程(1)
  6. 实现自己的Camera
  7. 在Android中引入Java8的lambda表达式
  8. Android4.0:统一标准强行安装默认主题Holo
  9. 硬件访问服务4之Android硬件访问服务框架
  10. Android深度探索(卷1):安装C/C++交叉编译环