【发布时间】:2014-11-11 02:35:05
【问题描述】:
我正在使用 ZXING 的 Capture Activity 项目实施一个应用程序。一切正常,但我发现了一个古怪的问题。如果我单击界面上的按钮启动扫描,它会切换到 zxing 扫描仪。如果我点击后退按钮,它就会退出 - 完全没有问题。我偶然发现了这样一个事实:如果我没有“点击”后退按钮,而是按住它的时间过长,应用程序会返回,但 UI 上的任何内容都无法点击。
我已经登录了我的班级,无论我点击还是按住,都显示相同的 EXIT 正在发生,所以这很奇怪。如果我点击并按住主页按钮,则应用程序被“冻结”,然后向上滑动(好像我要进入谷歌搜索)然后再向下滑动(好像我改变了对谷歌搜索的想法) 然后用户界面不再冻结,我可以再次点击按钮。堆栈或 logcat 中没有出现错误。这是一些代码sn-ps。希望有大神指教!
// 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();
}
}
这是退出意图时调用的内容(使用后退按钮或扫描)
//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
}
}
}
- 无论我点击还是按住返回按钮,“已取消”语句都会显示在我的日志中。
【问题讨论】:
-
按住返回键时,手机滑条会出现在左边还是右边?
-
与其在
onActivityResult方法中返回结果,不如在Activity中通过onNewIntent方法处理结果不是更好,因为您传递了一个额外的("SCAN_MODE ") 与Intent一起返回?
标签: android android-camera zxing barcode-scanner