Ajuda com Theread Android [RESOVIDO]

5 respostas
marciofermino
Amigos minha aplicação esta quase pronta, só preciso implementar, para o método Enviar() ser disparado a cada minuto. Cheguei a criar um thread, mas se mando rodar a aplicação para. Se tiro o theread funciona pefeitamente. Poderiam ajudar ?
@SuppressLint("NewApi")
public class MainActivity extends Activity {

	Button botaoEnviar;
	static TextView messageBox;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		messageBox = (TextView) findViewById(R.id.messageBox);


		botaoEnviar = (Button) findViewById(R.id.button1);

		botaoEnviar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {

				Enviar();
				/*
				 * try {
				 * 
				 * while (true) { new Thread().sleep(10000); Enviar();
				 * 
				 * }
				 * 
				 * } catch (InterruptedException e) { // TODO Auto-generated
				 * catch block e.printStackTrace(); }
				 */
			}
		});

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	public void Enviar() {

		SmsManager smsManager = SmsManager.getDefault();
		smsManager.sendTextMessage("[telefone removido]", null, "123456", null,
				null);

	}

	public static void updateMessageBox(String msg) {
		messageBox.append(msg);

		Enviar(msg);
	}

	public static void Enviar(String msg) {
		Socket socket = null;
		DataOutputStream dataOutputStream = null;
		DataInputStream dataInputStream = null;

		try {

			socket = new Socket("192.168.25.3", 8101);
			dataOutputStream = new DataOutputStream(socket.getOutputStream());
			dataInputStream = new DataInputStream(socket.getInputStream());

			// dataOutputStream.writeUTF(text);
			// dataOutputStream.writeUTF(textoSaida.getText().toString());
			dataOutputStream.writeUTF("\nNumero " + msg);

			// String stringLida = dataInputStream.readLine();
			// textoEntrada.setText(stringLida);

			socket.close();
			dataInputStream.close();
			dataOutputStream.close();

		} catch (UnknownHostException e) { // TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

Obrigado.

5 Respostas

V

cadê a thread ??

marciofermino

entre as linhas 21 e 29

Marky.Vasconcelos

Use TimerTask que faz exatamente o que voce quer.

V

Acredito que você tenha que enviar por um Handler.

marciofermino

Amigos consegui assim.

Obrigado.

Thread t1 = new Thread(){ 
					public void run(){ 
						while (true) { 
							try {
								new Thread().sleep(30000);
								Enviar();
							} catch (InterruptedException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							} 
							
							}
					} ;
					} ;
					t1.start();
Criado 25 de junho de 2013
Ultima resposta 26 de jun. de 2013
Respostas 5
Participantes 3