Android ZXing条形码扫描仪在ActivityGroup内失败

Android ZXing条形码扫描仪在ActivityGroup内失败,android,tabactivity,zxing,activitygroup,Android,Tabactivity,Zxing,Activitygroup,我创建了一个小的tabActivity应用程序,并且喜欢运行zxing并显示结果,而不用使用ActivityGroup更改选项卡。 没有ActivityGroup,一切正常 这是我的扫描活动的一些代码。如果我“启用”activityGroup,我将永远不会遇到onActivityResult…: class ScanButtonClickListener implements OnClickListener { @Override public void on

我创建了一个小的tabActivity应用程序,并且喜欢运行zxing并显示结果,而不用使用ActivityGroup更改选项卡。 没有ActivityGroup,一切正常

这是我的扫描活动的一些代码。如果我“启用”activityGroup,我将永远不会遇到onActivityResult…:

  class ScanButtonClickListener implements OnClickListener {
        @Override
        public void onClick(View v) {
            IntentIntegrator.initiateScan(BarcodeActivity.this);
        }
    }  

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
           IntentResult scanResult = 
                IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
           Log.v("barcode", scanResult.getContents().toString());
   }
以下是清单的部分内容:

activity android:name=".barcode.BarcodeActivity"
 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
 android:screenOrientation="portrait">
</activity>     
<activity android:name=".tabGroups.BarcodeTabGroupActivity"></activity> 
和过滤日志:

08-04 15:59:02.093:调试/解码处理程序(4477):在1毫秒内找到条形码
08-04 15:59:02.144:调试/捕获活动处理程序(4477):获取解码成功消息
08-04 15:59:03.792:调试/捕获活动处理程序(4477):获取返回扫描结果消息
android::CameraHardwareSec::StopReview():预览未运行,什么也不做
08-04 15:59:03.941:INFO/WindowManager(109):将旋转设置为0,animFlags=1
08-04 15:59:03.957:INFO/ActivityManager(109):配置已更改:{scale=1.0 imsi=0/0 loc=ENU US touch=3键=1/1/2导航=1/1方位=1布局=34 uiMode=17 seq=72}

我想一定是活动经理的原因。。一旦zxing结束,它将返回显示按钮且无结果


有什么建议吗?提前感谢

好的,我自己解决了这个问题。 对于所有对我的解决方案感兴趣的人,这里是:

我没有对子活动“BarcodeActivity”启动扫描,而是将其引用到父活动:

class ScanButtonClickListener implements OnClickListener {
    @Override
    public void onClick(View v) {
            //get the parent activity
        TabGroupActivity parentActivity = (TabGroupActivity) getParent();
        IntentIntegrator.initiateScan(parentActivity);
    }
}  
现在可以通过父BarcodeTabGroupActivity中的onActivityResult访问结果:

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    Log.v("barcode_tabgroup", scanResult.getContents().toString());
  }
在这个onActivityResult中,我现在可以开始下一个childActivity来处理扫描结果。。。我不知道这是否是一个好的做法,但它是有效的

我想我必须使用

BarcodeActivity childActivity = (BarcodeActivity) getCurrentActivity();
childActivity.finish();
但它会击落一切

BarcodeActivity childActivity = (BarcodeActivity) getCurrentActivity();
childActivity.finish();