Mam klasę, która rozszerza klasę Thread i ma swoją metodę uruchamiania zaimplementowaną w ten sposób.Zarządzanie wątkami android onPause
public void run(){
while(!terminate){
if(paused){
Thread.yield();
}else{
accummulator++;
}
}
}
Ten wątek jest spawnowany z metody onCreate.
Kiedy mój interfejs użytkownika jest ukryty (po naciśnięciu klawisza Home), moja metoda onPause ustawi wstrzymaną flagę na true i ustąpi bieżnika. Jednak w DDMS wciąż widzę czas utylizacji wątku i jego stan jako "działający".
Moje pytanie brzmi. Jaki jest właściwy sposób zatrzymania wątku, aby nie zużywał on czasu procesora?
Tak, to także wniosek, który wymyśliłem. Dodatkowo uważam, że najlepszą metodą implementacji nie jest podklasy bezpośrednio z wątku, ale użycie interfejsu Runnable. W ten sposób możesz zabić wątek, ale wciąż masz możliwość "wznowienia" go przez utworzenie kolejnego wątku, bez utraty stanu. Przyznano, że onDestroy lub aplikacja nie zostanie zabita i odtworzona. –