美文网首页
android home键合返回键遇到的问题

android home键合返回键遇到的问题

作者: 等你照顾我 | 来源:发表于2016-11-04 17:14 被阅读496次

    这次做安卓端的app共遇到两个按键问题。
    一、使用TabActivity的主页面需要监听返回事件,实现返回键与home键一样的效果。
    1、首先先查出触发home键的效果需要调用的代码如下:

    Intent intent=newIntent(Intent.ACTION_MAIN);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//如果是服务里调用,必须加入new task标识

    intent.addCategory(Intent.CATEGORY_HOME);

    startActivity(intent);

    2、紧接着查找监听返回事件的方法,有如下两种:
    @Override

    public booleanonKeyDown(intkeyCode, KeyEvent event) {

            if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){

                     //这里写下监听到返回事件以后的操作

                     return false;

             } else {

                    return super.onKeyDown(keyCode, event);

             }

      }

    或者

    @Override

    public voidonBackPressed() {

          //这里写下监听到返回事件以后的操作

            super.onBackPressed();

    }

    然而实际运行测试的时候发现,这两个函数始终没有被调用,去搜了下才知道原来是TabActivity与常规的按键监听事件是有冲突,于是找到了新的替代方案,如下:
    @Override

    public booleandispatchKeyEvent(KeyEvent event) {

            if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){ //这里监听返回按钮点击事件

                    if(event.getAction() == KeyEvent.ACTION_DOWN&& event.getRepeatCount() ==0) {

                              //在这里调用返回键需要实现的功能(上面的判断使代码只执行一次)

                    }

                    return false;

            } else {

                    return super.dispatchKeyEvent(event);

            }

    }


    二、第二个问题是客户反馈第一次安装app时,home键无效?!
          于是测试过联想,华为,魅族,三星,红米等品牌手机发现,除了红米手机,模拟器,其他品牌的手机都存在第一次安装app时,点击home键回到桌面再点击桌面icon时候,都会再次启动一个app,如果是从菜单再次点击进入,或者app完全退出后就不存在这样的问题。
    尝试了网上各个版本的解决方案都无效,最终确定的一个解决方案和原因如下:


    大致查到原因是,利用程序安装器打开程序来启动的Intent没有Category,而我们打开程序带了Category。所以可以通过判断有无Category来决定当前页面是否是启动页。把代码下面这段代码写入启动页的onCreate(Bundle savedInstanceState)方法,super.onCreate(savedInstanceState);的下一行:

    if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=0){
            finish();

            return;

    }

    以上。

    相关文章

      网友评论

          本文标题:android home键合返回键遇到的问题

          本文链接:https://www.haomeiwen.com/subject/gklwuttx.html