Altere o ImageView após alguns segundos

Estou tentando implementar uma atividade simples que permitirá ao usuário inserir uma senha. Eu tenho um gridview com as 9 imagens a serem usadas e as 4 visualizações de imagens que serão as imagens selecionadas (ao clicar no item no gridview, a imagem correspondente será preenchida com a selecionada).

Agora o problema: eu quero que as 4 visualizações de imagens funcionem de maneira semelhante aos campos de senha: por 1 segundo, aparece o item selecionado e depois outra imagem ... Tentei usar o asyncthread, mas obtive um erro:Somente o encadeamento original que criou uma hierarquia de visualizações pode tocar suas visualizações Aqui meu código:

@Override
protected String doInBackground(ImageView... imageViews) {
    ImageView passField1 = imageViews[0];
    ImageView passField2 = imageViews[1];
    ImageView passField3 = imageViews[2];
    ImageView passField4 = imageViews[3];
    try {
        switch (currentField) {
        case 1:
            passField1.setImageResource(//selected recource on grid view);
            Thread.sleep(1000);
            passField1.setImageResource(R.drawable.e00); //this is a blank image
            break;
        case 2:
            passField2.setImageResource(//selected recource on grid view);
            Thread.sleep(1000);
            passField1.setImageResource(R.drawable.e00);
            break;
        case 3:
            passField3.setImageResource(//selected recource on grid view);
            Thread.sleep(1000);
            passField1.setImageResource(R.drawable.e00);
            break;
        case 4:
            passField4.setImageResource(//selected recource on grid view);
            Thread.sleep(1000);
            passField1.setImageResource(R.drawable.e00);
            break;
        }
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return null;
}

questionAnswers(2)

yourAnswerToTheQuestion