[Resolvido] Fazer thread aguardar

Tenho uma thread na aplicação que verifica se tenho que enviar algum dado para o servidor em um determinado tempo, se tiver, abro um dialog para notificar o usuário, mas se eu não selecionar algo no dialog a thread vai executando e abrindo vários dialogs, tem como eu fazer a thread aguardar o fechamento desse dialog?

Segue o código

timer = new Timer(); TimerTask tarefa = new TimerTask() { @Override public void run() { try { CheckListAmilActivity.this.runOnUiThread(new Runnable() { public void run() { final Dialog dialogo = new Dialog(CheckListAmilActivity.this); dialogo.setContentView(R.layout.update); dialogo.setTitle("Atualização Disponível"); dialogo.setCancelable(true); dialogo.show(); } }); } catch (Exception e) { e.printStackTrace(); } } }; timer.scheduleAtFixedRate(tarefa, 10000, 10000);

Você poderia criar um boolean que seria setado como true sempre que fosse aberto um dialogo… e sempre antes de abrir o dialogo ele verificar se já tem uma aberto… + ou - assim:

boolean dialogando;
	public void abrirDialogo(){
		if(!dialogando){//se não tiver nenhum dialogo aberto
			dialogo.show();
			dialogando = true;
		}else{
			//se ja tiver um aberto num faz nada...
		}
	}
	
	public void EnviarServidor(){//quando enviar a solicitacao para o servidor que o dialogo fechar
		dialogando = false;
	}

Deu pra entender??

Fica com DEUS!

O que aplicando ao seu codigo ficaria mais ou menos assim:

                boolean dialogando;
                timer = new Timer();  
		TimerTask tarefa = new TimerTask()  
		{  
		    @Override  
		    public void run() {      
		    try   
		    {    
		        CheckListAmilActivity.this.runOnUiThread(new Runnable()  
		        {    
		            public void run()  
		            {    
		                final Dialog dialogo = new Dialog(CheckListAmilActivity.this);   
		                dialogo.setContentView(R.layout.update);  
		                dialogo.setTitle("Atualização Disponível");  
		                dialogo.setCancelable(true);  
		                if(!dialogando){
		                	dialogo.show();
		                	dialogando = true;
		                }
		            }    
		        });    
		    }   
		    catch (Exception e)   
		    {      
		        e.printStackTrace();      
		    }      
		}      
		};  
		timer.scheduleAtFixedRate(tarefa, 10000, 10000);  

E quando fechar o dialogo:

Fica com DEUS!

Muito obrigado pela ajuda landantas.