2011-11-19 31 views
3

所以有這個遊戲我試圖創建,並在課程活動中我有一個不錯的風景背景。我希望播放器在我的教程彈出xml膨脹之前看到它一秒或兩秒。事情是透明的彈出窗口xml和背景xml都會在活動啓動後立即出現。我在這個新的和不能理解在android開發人員的主頁的解釋。任何幫助都感激不盡。爲充氣佈局部署時間延遲

package com.jibushi; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class LessonsShell extends Activity { 

    private View view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.lessons); 

     final ViewGroup parent = (ViewGroup) findViewById(R.id.lessons_bg); 

     Thread splashTread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        wait(1000); 
       } catch (InterruptedException e) { 

       } finally { 
        view(); 
       } 
      } 

      private void view() { 
       // TODO Auto-generated method stub 
       view = LayoutInflater.from(getBaseContext()).inflate(
         R.layout.lessons_dialog, null); 
       parent.addView(view); 
      } 
     }; 
     splashTread.start(); 
    } 
} 

回答

2

試試這個:

public class LessonsShell extends Activity{ 
private static final int MESSAGE_SHOW_POPUP=7; 
private static final long TIME_DELAY=3000;//3 seconds 
private View view; 
private Handler handler=new Handler(){ 
    handleMessage(Message msg){ 
     switch(msg.what){ 
     case MESSAGE_SHOW_POPUP: 
      view(); 
      break; 
     } 
    }; 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

setContentView(R.layout.lessons); 
//this will send a message to the handler to display the popup after 3 seconds. 
handler.sendEmptyMessageDelayed(MESSAGE_SHOW_POPUP,TIME_DELAY); 

} 

private void view() { 
// TODO Auto-generated method stub 
ViewGroup parent = (ViewGroup) findViewById(R.id.lessons_bg); 
view = LayoutInflater.from(getBaseContext()).inflate(R.layout.lessons_dialog, null); 
parent.addView(view); 
} 

}

處理程序是一個很好的替代品在android系統定時器。

你之前做的是在onCreate中創建一個後臺線程,試圖從那裏訪問UI線程。根據我的經驗,它應該會崩潰,因爲你無法從後臺線程訪問UI線程。

+0

太棒了!感謝一堆! – kishfoo

+0

高興地幫助:) – rDroid

0

你不能改變UI元素和非UI線程,所以這段代碼將不起作用。

1)顯示空白背景。

2)執行異步任務其中

DoinBackground() 
{ 
wait 
} 
onPostExecute() 
{ 
addView 
} 

(參照谷歌如果任何術語是未知的)。