EdwardvanRaak / MaterialBarcodeScanner

Easy to use barcode reader for your Android Project (Uses Google Mobile Vision API)
Apache License 2.0
272 stars 113 forks source link

EventBus: Could not dispatch event #38

Open Axrorxoja opened 7 years ago

Axrorxoja commented 7 years ago

Hi, Thank you for usefull lib, I use it in fragment. It's fragment function


 public void onResult(Barcode barcode)
            {
                EventBus bus = EventBus.getDefault();
                bus.removeAllStickyEvents();
                bus.removeStickyEvent(materialBarcodeScanner);
                bus.removeStickyEvent(getActivity());
                if (bus.isRegistered(materialBarcodeScanner))
                    bus.unregister(materialBarcodeScanner);
                materialBarcodeScanner = null;
                listener.onQRScanFinished();
            }
and via listener.onQRScanFinished function I call activity function
 `  @Override
        public void onQRScanFinished()
            {
                getSupportFragmentManager().popBackStack();
                Timber.d("onQRScanFinished");
            }`

After that Event bus say
```EventBus: Could not dispatch event: class com.google.android.gms.vision.barcode.Barcode to subscribing class class com.edwardvanraak.materialbarcodescanner.MaterialBarcodeScanner
                                                                   java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
                                                                       at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1842)
                                                                       at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1860)
                                                                       at android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:770)
                                                                       at uz.uzgps.android.viewer.screens.login.LoginActivity.removeLastFragment(LoginActivity.java:125)
                                                                       at uz.uzgps.android.viewer.screens.login.LoginActivity.onQRScanFinished(LoginActivity.java:119)
                                                                       at uz.uzgps.android.viewer.screens.login.fragments.QReaderFragment.onResult(QReaderFragment.java:135)`
ratanakpek commented 6 years ago

I am error with it too

bpappin commented 6 years ago

+1

bpappin commented 6 years ago

see #34 and #35