簡體   English   中英

使用Thread.sleep()暫停和恢復應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM