Problem with Java Activity in Android Studio

Asked

Viewed 44 times

-1

Good afternoon, I’m facing a problem that whenever I update two different nodes on Firebase from a single véz, a Activity simply opens again overlapping the Activity current. Follows the code below the called method.

private void incluiProduto() {
    try {
        final String dataCadastro = new SimpleDateFormat("dd/MM/yyy HH:mm:ss").format(Calendar.getInstance().getTime());
        precoProduto = Double.parseDouble(editTextPreco.getText().toString());


        mapVenderProduto = new HashMap<>();

        mapVenderProduto.put("chaveProduto", chaveProduto);
        mapVenderProduto.put("chaveVendedor", chaveVendedor);
        mapVenderProduto.put("fotoVendedor", fotoVendedor);
        mapVenderProduto.put("latitude", latitude);
        mapVenderProduto.put("longitude", longitude);
        mapVenderProduto.put("nomeVendedor", nomeVendedor);
        mapVenderProduto.put("precoProduto", precoProduto);
        mapVenderProduto.put("telefoneVendedor", telefoneVendedor);

        mapProdutos = new HashMap<>();

        mapProdutos.put("chaveProduto", chaveProduto );
        mapProdutos.put("nomeProduto", nomeProduto);
        mapProdutos.put("precoProduto", precoProduto );
        mapProdutos.put("fotoProduto", fotoProduto);
        mapProdutos.put("unidadeMedidaProduto", unidadeMedidaProduto );
        mapProdutos.put("dataCadastro", dataCadastro);
        mapProdutos.put("marcaProduto", marcaProduto);

        DatabaseReference dadosRef = FirebaseDatabase.getInstance().getReference();
        Map<String, Object> mapDados = new HashMap<>();
        mapDados.put("produtos/" + chaveProduto + "/vendedores/" + chaveVendedor, mapVenderProduto);
        mapDados.put("vendedores/" + chaveVendedor + "/produtos/" + chaveProduto,  mapProdutos);
        dadosRef.updateChildren(mapDados);
        finish();

    } catch (Exception ex) {
      ex.printStackTrace();
    }
}

1 answer

0

Do it this way, when you move to the next Activity:

Intent intent = new Intent(Activity2.this, Activity3.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

By putting this Flag, you clear the stack of Acitivitys that are accumulating.

  • It didn’t work. Let me explain. In Itensactivity I have a Listview that when clicking on a specific item opens Vendeprodutoactivity in the form of a popup. Itensactivity doesn’t want it to be closed, so I don’t give her a Finish. When running the incluiProduto() method from the onclick event of a button in Vendeprodutoactivity should simply close, but what is happening is that if I run two updates at the same time in Firebase, Vendeproductoactivity closes and Itensactivity opens again overlapping an already opened Itensactivity.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.