[英]Using Thread.sleep() for pausing and resuming app
嗨,
在我的應用程序中我試圖使用Thread.sleep(100)暫停我的線程,而它的后台為了使用更少的CPU,但它凍結時,我打開它備份。
我意識到當我重新打開應用程序時, onResume
沒有被調用。
有什么想法嗎?
public void onPause() {
pause = true;
Log.d("mSTATE","THREADPAUSE");
}
public void onResume() {
pause = false;
running = true;
Log.d("mSTATE","THREADRESUME");
}
public void run() {
while(running){
while(pause && running){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
while (!pause && running) {
Canvas c = null;
try {
c = sHolder.lockCanvas(null);
synchronized (sHolder) {
doDraw(c);
powerUps();
}
} finally {
if (c != null) {
sHolder.unlockCanvasAndPost(c);
}
}
}
}
Log.d("mState","EndofRun");
}
當您將線程置於睡眠狀態時,您也會阻止UI線程,從而導致應用程序凍結。
您需要以Android方式檢查線程以獲得最佳性能。
http://developer.android.com/resources/articles/painless-threading.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.