2011-12-05 44 views
0

對不起,我一直試圖調整令牌,但不知怎的,我無法管理這一個。更改ImageView幾秒鐘,並暫停用戶界面

我有以下代碼:

timer.schedule(new TimerTask(){ 

    runOnUiThread(new Runnable() { 

     public void run(){ 
     SplashImage.setImageDrawable(aktieknop);} 

     }); 

    },SplashTime); 
    } 

這樣的代碼 '作品':

timer.schedule(new TimerTask(){ 

    // runOnUiThread(new Runnable() { 

     public void run(){ 
     SplashImage.setImageDrawable(aktieknop);} 

    // }); 

    },SplashTime); 
    } 

能否請你幫我解決這個問題很傻?非常感謝!

+0

既然你已經嘗試過的東西,發佈您的代碼的相關部分,並解釋具體是什麼,是行不通的。如果你只是想要一個關於線程的鏈接,然後檢查http://developer.android.com/resources/articles/painless-threading.html – Craigy

+0

先閱讀logCat消息..或粘貼在這裏 –

回答

0

您必須在runOnUIThread()方法調用此代碼行 「SplashImage.setImageDrawable(nSplashImage);」 從你的run方法是這樣的:

runOnUiThread(new Runnable() { 
public void run() { 
    SplashImage.setImageDrawable(nSplashImage); 
} 

});

這是因爲您無法更改非UI線程上的UI組件。

+0

謝謝,我做了一些新的最終變量並認真(看着LogCat),我也需要在UI線程上運行它。我現在總共只有這個;})我沒有正確的測試。 – Diego

+0

歡迎您..您也可以閱讀有關AsyncTask ..它可以幫助你很多在Android多任務... – Cata

0

對於啓動畫面,您可以使用處理程序併發送延遲的消息。

Handler splashHandler = new Handler() { 

    @Override 
    public void handleMessage(Message msg) { 
      super.handleMessage(msg); 
       //Here you can do what ever you want 

      } 
     }; 

INT SPLASHTIME = 2000; //你的願望

splashHandler.sendMessageDelayed(msg, SPLASHTIME);