Voglio uccidere un thread specifico ma non riesco a capire un modo per farlo funzionare. Includo tutte le informazioni successive, anche se non sembra importante:android kill thread specifico su evento barra delle azioni
Uso la barra delle azioni sherlock e voglio eliminare un thread su un evento del pulsante di azione. Quindi, ho:
Thread myThread;
myThread = new Thread(new Runnable(){
public void run(){
functionX();
}
});
myThread.start();
Questo thread è un thread di lunga durata e funcionX() crea anche alcuni nuovi thread. Voglio uccidere il thread quando:
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case android.R.id.home:
myThread.interrupt();
break;
};
Ho provato con ExecutorService, utilizzando presentare (eseguibile) per un risultato futuro e Future.cancel, ma non sembra funzionare. Vorrei anche ricordare che functionX() usa le richieste HTTP get per ottenere dati da un servizio JSON.
+1. il suggerimento 2 è quello che userei. Se stai eseguendo un ciclo veloce di un thread, includilo al livello più alto, altrimenti ne hai alcuni attraverso il codice. Prima di elaborare sezioni affamate. – Doomsknight
Grazie. Vado con la tecnica 2. –