Como Alterar o Tempo de Exibição da Mensagem Toast no Android



A mensagem Toast é aquela mensagem que aparece para confirmar alguma alteração, progresso de uma tarefa ou qualquer outra informação em dispositivos Android. A mensagem normalmente possui o texto em branco com um fundo cinza escuro.

A ideia por trás deste tipo de mensagem é passar uma informação para o usuário sem atrapalhar a atividade que ele estiver executando. A mensagem "aparece" por um curto espaço de tempo e "desaparece" sem a necessidade de interação do usuário.

A mensagem Toast como é conhecida no Android é uma View onde você pode definir a mensagem e o tempo de exibição, o intervalo de tempo pode ser curto - LENGHT_SHORT, dura em torno de 2 segundos ou longo - LENGHT_LONG, que dura em torno de 3,5 segundos. Mas e se você precisar que a mensagem fique visível por um intervalo de tempo maior, para o caso por exemplo, de uma mensagem mais longa.

A classe Toast não permite definir um intervalo de exibição da mensagem diferente dos valores pré-definidos, LENGHT_LONG e LENGHT_SHORT, então para aumentar este tempo podemos usar como uma possível solução a classe CountDownTimer. Esta classe permite definir um intervalo de tempo de exibição da mensagem durante um tempo pré-definido por exemplo, exibe a mensagem a cada 1 segundo durante 10 segundos. Segue o código exemplo para exibir uma mensagem Toast por 10 segundos:


final Toast toast = Toast.makeText(this, "Esta é uma mensagem Toast",
        Toast.LENGTH_LONG);

// Exibe a mensagem por 10 segundos
CountDownTimer toastCountDown;
toastCountDown = new CountDownTimer(10000, 1000) {
    public void onTick(long millisUntilFinished) {
        toast.show();
    }
    public void onFinish() {
        toast.cancel();
    }
};

// Exibe a mensagem
toast.show();
// Inicia a contagem do tempo
toastCountDown.start();

No método onFinish() da classe CountDownTimer cancelamos a exibição da mensagem quando atinge o tempo máximo.

Esta solução funciona porque a mensagem fica visível na tela pelo tempo definido e desaparece ao final do tempo máximo.

Como Compilar o Aplicativo WiFiDirectDemo no Android Studio

A partir da API 14 (Android 4.0) é possível fazer a comunicação entre dispositivos Android, que possuem o hardware adequado, através do WiFi, sem a necessidade de usar um equipamento intermediário, tipo um access point (ponto de acesso). Para testar essa funcionalidade, existe um código exemplo que o Google fornece que está no link WiFiDirectDemo, mas o projeto está no formato do Eclipse, e para compilar e rodar através do Android Studio precisa importar o projeto no ambiente de desenvolvimento, antes de conseguir compilar.

Como compilar

Após baixar o arquivo do projeto é possível abrir no Android Studio, mas infelizmente o Android Studio não apresenta nenhuma indicação que o projeto está em Eclipse, ele abre o projeto, mas não é possível compilar e rodar o exemplo.

Para compilar e rodar o exemplo é necessário fazer a importação do projeto Eclipse para o projeto Android Studio. Para importar o projeto use a opção Import Project na tela inicial do Android Studio, onde aparecem as opções para criar um projeto novo, abrir um existente, importar um projeto, dentre outras opções.

Tela Inicial do Android Studio

A importação do projeto demora um pouco, mas depois que importar, o projeto compila e roda com sucesso.

Tela do Aplicativo WiFiDirectDemo

OBS: Caso você precise rodar o aplicativo em uma API inferior a 23 (Marshmallow), vai dar erro de compilação na biblioteca do FileProvider que foi inserido na API 22, portanto para usar toda a funcionalidade do aplicativo a API mínima deve ser a 23.

Links com mais informações sobre o WiFi Direct:
Connect devices wirelessly
Wi-Fi peer-to-peer overview