Ich habe eine Klasse, die die Thread-Klasse erweitert und hat seine Laufmethode als so implementiert.android thread management onPause
public void run(){
while(!terminate){
if(paused){
Thread.yield();
}else{
accummulator++;
}
}
}
Dieser Thread stammt von der onCreate-Methode.
Wenn meine Benutzeroberfläche ausgeblendet ist (wenn die Home-Taste gedrückt wird), setzt meine onPause-Methode das pausierte Flag auf "true" und gibt das Profil zurück. In der DDMS sehe ich jedoch immer noch die uTime des Threads und seinen Zustand als "running".
Also meine Frage ist. Was ist der richtige Weg, um den Thread zu stoppen, so dass es nicht CPU-Zeit verbraucht?
Ja, das ist die Schlussfolgerung, die ich auch gefunden habe. Darüber hinaus denke ich, die beste Methode der Implementierung besteht nicht direkt von Thread ableiten, sondern die Runnable-Schnittstelle verwenden. Auf diese Weise können Sie den Thread beenden, haben aber immer noch die Möglichkeit, ihn "fortzusetzen", indem Sie einen anderen Thread instanziieren, ohne den Status zu verlieren. Zugegeben, dass onDestroy oder die Anwendung nicht getötet und neu erstellt wird. –