Problema com Intent.putExtra()

1 resposta
java
L

Bom tarde galera, estou tentando passar parâmetros pelo Intent usando o putExtra.

View.OnClickListener atuali = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int posi = (int) v.getTag();

            muda.putExtra("idB", listaadap.get(posi).getId()); // <=int 
                muda.putExtra("imagemB", listaadap.get(posi).getImagem()); // <=Bitmap
                muda.putExtra("nomeB", listaadap.get(posi).getNome()); // <=String
                muda.putExtra("descriB", listaadap.get(posi).getDescricao()); // <=String
                muda.putExtra("valorB", listaadap.get(posi).getValor()); // <=double
                muda.putExtra("nomeDoArquivo", listaadap.get(posi).getNomeDoArquivo()); // <=String
                muda.putExtra("ArqTipoB", listaadap.get(posi).getTipo()); // <=String
                muda.putExtra("tipoB", "atua");
                contesto.startActivity(muda);
        }
    };

bom o meu problema é que as vezes ele não funciona e recebo essa mensagem de erro.

04-30 15:20:39.325 1612-1612/br.com.mafra.webservice E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
04-30 15:20:47.725 1612-1612/br.com.mafra.webservice I/Choreographer: Skipped 1168 frames!  The application may be doing too much work on its main thread.

reparei que a unica diferença de quando ele funciona ou não é a imagem que eu passo pelo Bitmap.

as imagem são um pouco variadas, mas o Intent funciona quando eu passo uma imagem que tenha por volta de 15KB e 150x150 de resolução no formato .jpg, e ele não funciona quando eu passo uma imagem maior que essa, na média com 100KB 1500x1500 de resolução no formato .jpg.

fiquei imaginando se o Intent possui algum limite do que nos possamos passar pelo putExtra mas realmente não faço ideia sobre isso, auguem saberia me dizer por que o Intent não funciona quando eu passo imagens um pouco maiores?

1 Resposta

jonathan.sky

Opa bom dia, todas as atualizações de tela devem ser feitas pela UIthread, caso contrario dependendo do tamanho do processo você ira força a mainthread, se demorar mais que 7 segundos a aplicação ira quebrar, então é aconselhável usar uma outra thread para carregar o processo e a UIthread para atualizar a tela em vez da main, falow.

Solução

UIthread.

Criado 30 de abril de 2016
Ultima resposta 16 de ago. de 2016
Respostas 1
Participantes 2