2013-10-24 109 views
0

也許樣的代碼顯示了什麼,我試圖做的,所以我也有許可證檢查循環?

private void getLicenseResults() { 

    if (licensed && didCheck == true) { 

     Thread timer = new Thread() { 
      public void run() { 
       try { 
        sleep(2000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } finally { 
        Intent openStartingPoint = new Intent(
          "***.MAINACTIVITY"); 
        startActivity(openStartingPoint); 
        finish(); 
       } 
      } 
     }; 
     timer.start(); 
    } 

    if (didCheck == false) { 

     Toast.makeText(Splash.this, "Checking License, Please Wait", 
       Toast.LENGTH_LONG).show(); 

     Thread timer = new Thread() { 
      public void run() { 
       try { 
        sleep(2000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } finally { 
        getLicenseResults(); 
        Log.i("LICENSE", "re-checking"); 
       } 
      } 
     }; 
     timer.start(); 
    } 

} 

我跑許可檢查沒有它之前嘗試循環開始,它的工作,除非檢查了超過幾秒鐘就跳過了

if (licensed && didCheck == true) 

和活動只是一種站着,等待,而無需啓動我的主要活動(此檢查是在啓動屏幕上)。

所以我希望只有在didCheck事實上最終真實之後才能調用「if didCheck = true」部分。我確信有一個簡單的解決方案,但我是自學成才的,我沒有使用循環或回調(?)的經驗。

謝謝你的幫助!

回答

0

你是不是在你的第二個設定didCheck爲true,如果調用getLicenseResults

+0

didCheck是在這個後臺進程目前正對設置爲true之前聲明。 「許可證檢查器」是一個單獨的類,當它最終完成時(速度因互聯網連接而異),它將didCheck從false設置爲true。 – RyWalk