Usar varios forms j2me cada um executando sua acao

1 resposta
Z

Boa tarde gente
Estou num impasse xave no desenvolvimento da minha aplicação, o que esta se passando é o seguinte:
quando conecto a base de dados usando j2me no acto de execucao ele exige que use thread senao entra em deadlock e eu faço o seguinte:

private void connectThread(){
	t = new Thread(this);
    	t.start();
	}


public void run(){
 try{
	 RegistarVeiculo();
	 registaAdvertencia();
	 }catch (Exception e){}
	}

public void RegistarVeiculo() throws IOException {

//codigo aqui para registar o veiculo remotamente na base de dados

}
public void registaAdvertencia() throws IOException {

//codigo aqui para registar a advertencia na base de dados

}

public void commandAction(Command command, Displayable displayable)  {

if (command == salvar1) {

if (gravacaoOK== false){

mostrarAlerta(Registro vazio não será salvo, Tente novamente);

}else {

connectThread();

}
}
		
	else if (command == salvar2) {
   		if (gravacaoOK== false){
	   		mostrarAlerta("Registro vazio não será salvo", "Tente novamente");
   		}else {
	   		connectThread();
   		}
   		
	}
		  	}

o que esta acontecendo neste momento é que quando gravo o veiculo na base de dados e de seguida tento gravar advertencia ele grava a advertencia e repete a grvacao do veiculo anteriorimente gravado, isso porque ambos chamam o metodo connectThread().
como faço para essa repeticacao nao acontecer?
eu axo que o problema esta aqui

public void run(){

try{

RegistarVeiculo();

registaAdvertencia();

}catch (Exception e){}

}

precisa-se de algum if else, mas o problema é k nao xtou vendo como.

ajude-me.

nota: o meu objectivo é ter varios forms na mesma midlet que cada um dos forms execute sua accao especifica.

1 Resposta

ricoldi

Eu diria varias formas de fazer isso bem feito, mas aqui o povo costuma querer ver funcionando e foda-se o aprender. não digo que é teu caso. Se quer fazer direito diria para a famigerada frase que sempre escrevo aqui, oriente melhor seu código, esse tipo de problema (Não ver como fazer algo no proprio código) é por falta de OO.

[gambiarra]
Mas para resolver seu problema, eu diria para que no constructor do thread passe o parametro que dira qual método chamar, e no run coloque um IF com essas condições.
[/gambiarra]

Att
Ricoldi

Criado 16 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 1
Participantes 2