首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android按住按钮冻结我的用户界面

Android按住按钮冻结我的用户界面
EN

Stack Overflow用户
提问于 2014-11-11 02:35:05
回答 1查看 204关注 0票数 0

我有一个应用程序,我正在执行的捕获活动项目的ZXING。一切都很顺利,但我发现了一个奇怪的问题。如果我点击界面上的一个按钮来启动扫描,它就会切换到zxing扫描仪。如果我按后退按钮,它就会退出--一点问题都没有。我偶然发现,如果-,而不是“点击”后退按钮,我按住它的时间太长,应用程序返回,但用户界面上什么都不能点击。

我在我的类中记录显示,无论我点击还是按住,都会发生相同的出口,所以这很奇怪。当我点击并按住主页按钮时,应用程序就会被“冻结”,然后将其向上滑动(就像我要进入谷歌搜索一样),然后再向下滑动(就好像我改变了对谷歌搜索的想法一样),然后用户界面就不再被冻结,我可以再次点击按钮。堆栈或logcat中没有出现错误。下面是一些代码片段。希望有人有建议!

代码语言:javascript
运行
复制
// This is what is called when I click my "scan" button.
public void menuScanMember(View view) {
    try {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE,PRODUCT_MODE");
        startActivityForResult(intent, 0);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这就是当意图退出时所称的内容(要么用后退按钮,要么用扫描)

代码语言:javascript
运行
复制
//In the same activity you'll need the following to retrieve the results:
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            p_strScanMemId = intent.getStringExtra("SCAN_RESULT");
            String strId = getMemberByMemberId(db, p_strScanMemId);

            if (strId != null && !("".equalsIgnoreCase(strId))) {
                // If found, send to member info landing page
                Intent detailIntent = new Intent(this, MemberDetail.class);
                detailIntent.putExtra(EXTRA_MESSAGE, p_strScanMemId);
                startActivity(detailIntent);
            } else {
                // If not found, ask user if they want to create the member account now.
                createYesNoDialog("Member Not Found.  Register Now?");
            }

        } else if (resultCode == RESULT_CANCELED) {
            Log.v("CANCELLED CANCELLELD", "RESULT CANCELLED");
            // Nothing to do here - we'll just exit the activity
        }
    }
}
  • “取消”语句显示在我的日志中,无论我是点击还是按住后退按钮。
EN

回答 1

Stack Overflow用户

发布于 2014-11-11 03:27:21

我找到了一个很好的解决办法。我查看了CaptureActivity代码附带的代码。有一个带有开关的onKeyDown处理程序,用于查找后退按钮。最后,我重写了onKeyUp,并将back按钮检测移到了该方法中,因此,如果按住back按钮,只有当它松开时,它的意图就不再存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26856531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档