Kwa*_*eng 5 multithreading android
我有一个扩展Thread类的类,并且它的run方法实现如此.
public void run(){
while(!terminate){
if(paused){
Thread.yield();
}else{
accummulator++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
该线程是从onCreate方法生成的.
当我的UI被隐藏时(按下Home键时),我的onPause方法会将暂停标志设置为true并产生踏板.但是在DDMS中,我仍然看到线程的uTime累积,其状态为"running".
所以我的问题是.什么是停止线程的正确方法,以便它不会耗尽CPU时间?
在 onPause 之后保持线程运行实际上是不好的做法。原因是,在 onPause 之后,您的应用程序可能会在您不知道的情况下随时退出内存,因此您将无法自行清理。
正确的方法是在暂停时停止线程并在恢复时重新创建它。如果您需要状态,您可以使用 Android 内置的 saveState 方法或设置或任何一个来保留状态。
归档时间: |
|
查看次数: |
5084 次 |
最近记录: |