Ich habe eine Andoid (API 21) Mainactivity, in der ein Thread starten. Durch Drücken einer Taste schließe ich den Thread und die Hauptaktivität. Ist dies eine gute Lösung, Thread zu unterbrechen und Aktivität zu schließen? Ich versucheWie zu korrigieren Stop Android Hauptaktivität auf Thread warten?
mythread.cancel()
finishAndRemoveTask();
zu nennen, aber wenn mainactivity/Programme schließt es abstürzt, weil der Faden noch am Leben ist.
Also, wenn Schaltfläche geklickt wird ich versuche, den Code zu ändern und schreiben:
mythread.interrupt();
finishAndRemoveTask();
Ist das eine gute Lösung? (Ich weiß nicht, ob ich mythread.join verwenden(), weil der Faden unendlich läuft ..
In OnCreate i create und starten Sie den Faden
myThread_read = new thread_read(handler_read);
//starting thread
myThread_read.start();
Ich weiß, ich Runnable verwenden müssen aber diesen Code . Themen-Klasse erweitert der Thread-Code ist:
private class thread_read extends Thread {
Handler mHandler;
String logString ;
protected volatile boolean running;
/* constructor */
thread_read(Handler h) {
mHandler = h;
}
public void start()
{
Logger.WriteString("thread_read", "Starting");
running = true;
super.start();
}
public void cancel()
{
Logger.WriteString("thread_read", "Stopping");
running = false;
}
public void run() {
while (running) {
try {
Thread.sleep(500); // 500 msecs
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
break;
}
// do works
}
}
}
}
Sie meinen, dass ein mythread.interrupt() entfernen kann; und einfügen mythread.cancel() in OnDestroy Methode ?? @Override öffentliche void onDestroy() { mythread.cancel(); super.onDestroy(); } – Gab74