1
resposta

Problema com metodo onActivityResult

Fazemos algumas coisas dentro do metodo onActivityResult, e ta ocorrendo um problema de sincronismo com a thread de UI. Parece que a thread de UI está ficando bloqueada, lançando uma tela preta. O fluxo de negocio dentro dela é executado direitinho, porém o usuário para de ver a tela.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    try {
        if (requestCode == RequestCodeEnum.PAY.getCode() || requestCode == RequestCodeEnum.REFUND.getCode()) {
            if(resultCode == RESULT_OK) {
                JSONObject json = new JSONObject();
                String cardNumber = RetrieveCardNumberByJsonUtils.execute(data.getExtras().getString("TIPO_CAMPOS"));
                String cardBin = RetrieveCardBinUtils.execute(cardNumber);
                json.put("acquirer", data.getExtras().getString("REDE_AUT"));
                json.put("brand", data.getExtras().getString("BANDEIRA"));
                json.put("nsuSitef", data.getExtras().getString("NSU_SITEF"));
                json.put("nsuHost", data.getExtras().getString("NSU_HOST"));
                json.put("authorizationCode", data.getExtras().getString("COD_AUTORIZACAO"));
                json.put("installmentKind", data.getExtras().getString("TIPO_PARC"));
                json.put("card", cardNumber);
                json.put("bin", cardBin);
                json.put("branchCheckingCopy", data.getExtras().getString("VIA_ESTABELECIMENTO"));
                json.put("clientCheckingCopy", data.getExtras().getString("VIA_CLIENTE"));
                json.put("typeFields", data.getExtras().getString("TIPO_CAMPOS"));
                performAutomaticPrinting(data.getExtras().getString("VIA_ESTABELECIMENTO"), data.getExtras().getString("VIA_CLIENTE"));
                mResult.success(json.toString());
            } else {
                mResult.error("422", "Falha ao realizar transação do Sitef", resultCode + "".concat(data.getExtras().toString()));
            }
        }
    } catch (Exception e) {
        mResult.error("422", "Falha ao realizar transação no Sitef.", e.getLocalizedMessage());
    }
}
1 resposta

Fala Marco, de boa ?

Cara, olhando por cima não parece que está errado.

Talvez seja jogo tu migrar pra versão mais nova, dado que esse método está para ficar obsoleto...

Dá uma olhada nisso, acredito que vá funcionar também pro seu caso: https://developer.android.com/training/basics/intents/result