Im Versuch, ein Programm zu machen, dass, wenn ich eine Taste drücken, wird es die Geschwindigkeit meines Arduino Auto zeigen und die zurückgelegte Strecke. Ich versuche, die Entfernung in TextView ständig zu aktualisieren.Android Studio Threads Handler
Hier meine Initialisierung von Handler ist in der onCreate(), die meine Textview Text distanzieren setzen soll hier
mHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
String stringss = bundle.getString("myKey");
tv2 = (TextView) findViewById(R.id.zval);
tv2.setText("Distance is : " + stringss);
}
};
Und ist mein Thread, der die Arbeit im Hintergrund tut
btnDist.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Runnable runnable = new Runnable() {
public void run() {
Message msg = mHandler.obtainMessage();
Bundle bundle = new Bundle();
int distance = distanta(); //function that returns distance/secound
int dist = 0;
while(distance > 0) {
try {
Thread.sleep(1000); //1000 milliseconds is one second.
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
dist += distance;
}
String dateString = String.valueOf(dist);
msg(dateString);
bundle.putString("myKey", dateString);
msg.setData(bundle);
mHandler.sendMessage(msg);
}
};
Thread mythread = new Thread(runnable);
mythread.start();
}
});
Die Anwendung läuft und stürzt nicht ab, aber meine Textansicht wird überhaupt nicht aktualisiert. Ich bin neu in Java-Threads, so dass ich etwas falsch gemacht haben könnte. Vielen Dank!
Das war sehr hilfreich, danke für die Antwort. –