Problema com Intent.putExtra()

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?

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.

1 curtida