Ich möchte einen bestimmten Thread töten, aber kann nicht herausfinden, eine Möglichkeit, es zu arbeiten. Ich schließe alle Informationen ein, auch wenn es nicht wichtig scheint:Android Kill bestimmten Thread auf Action-Leiste Ereignis
Ich benutze Aktionsleiste Sherlock und möchte einen Thread auf einem Aktionsknopf Ereignis beenden. Also, ich habe:
Thread myThread;
myThread = new Thread(new Runnable(){
public void run(){
functionX();
}
});
myThread.start();
Dieser Thread ist ein langer laufender Thread, und funcionX() erstellt auch einige neue Threads. Ich will den Thread töten, wenn:
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case android.R.id.home:
myThread.interrupt();
break;
};
Ich habe mit ExecutorService versucht, sende mit (runnable) für ein zukünftiges Ergebnis und Future.cancel aber tue scheint nicht zu funktionieren. Ich sollte auch erwähnen, dass functionX() http get Anfragen verwendet, um Daten von einem JSON-Dienst zu erhalten.
+1. Vorschlag 2 ist, was ich verwenden würde. Wenn Sie einen Thread schnell loopen, fügen Sie ihn einfach auf der obersten Ebene ein, ansonsten haben Sie ein paar durch den Code. Vor prozesshungrigen Abschnitten. – Doomsknight
Danke. Ich werde mit Technik 2 gehen. –