代号一 当我在 Android 上阅读 qrCode uzing Zxing 时,应用程序返回到"初始化"和"开始"



我正在使用Codenameone和ZXing读取QRCode。当我调用扫描仪时,我的手机会打开QRCode阅读器应用程序,我可以读取QRCode,但当android将我带回应用程序时,它会经过init然后启动状态。这让我回到了我申请的登录表格,而不是继续填写我当时的表格。

关于如何保持不变,有什么帮助吗?我做错什么了吗?提前谢谢。

    EverproX.addMessage("Before Scann");
    CodeScanner.getInstance().scanQRCode(new ScanResult() {
       public void scanCompleted(String contents, String formatName, byte[] rawBytes) {
            EverproX.addMessage("Scan Completed "+contents);
       }
       public void scanCanceled() {
            EverproX.addMessage("Scan Cancelled");
       }
       public void scanError(int errorCode, String message) {
            EverproX.addMessage("Scan Error "+errorCode+" "+message);
       }
   });

EverproX可以看作是一个日志类。

通过分析我们的日志,我们可以说,只要我们调用CodeScanner.getInstance().scanQRCode(),应用程序就会被调用为"Destroy"。然后,在扫描完成后,它再次通过init并启动。它从不进入scanComplete scanCanceled或scanError回调。

应用程序在CodeScanner调用时被销毁是正常的吗?非常感谢。

在您的codenameone项目中,您应该找到一个基于应用程序名称命名的类(例如MyApp.java),修改代码以读取类似的内容:

public class MyApp {
private Form current;
public void init(Object context) {
    // Pro users - uncomment this code to get crash reports sent to you automatically
    Display.getInstance().addEdtErrorHandler(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            evt.consume();
            Log.p("Exception in AppName version " + Display.getInstance().getProperty("AppVersion", "Unknown"));
            Log.p("OS " + Display.getInstance().getPlatformName());
            Log.p("Error " + evt.getSource());
            Log.p("Current Form " + Display.getInstance().getCurrent().getName());
            Log.e((Throwable) evt.getSource());
            Log.sendLog();
        }
    });
}
public void start() {
    if (current != null) {
        current.show();
        return;
    }
    new StateMachine("/theme");
}
public void stop() {
    current = Display.getInstance().getCurrent();
}
public void destroy() {
    current = null;
}

}

最新更新