2011-10-06 22 views
0

我試圖創建一個啓動畫面展現出來,而我的應用程序初始化,使用對話的方法在這裏討論:無法獲取對話框/開機畫面出現

http://blog.iangclifton.com/2011/01/01/android-splash-screens-done-right/

然而,不管我如果沒有啓動畫面,屏幕會一直保持黑色,直到主屏幕完全實例化爲止。我在setup()方法結束時調用m.dismiss()。

不會引發任何錯誤,而launch.XML是簡單地用match_parent寬度和高度,並用按鈕佔用ENTI視圖的LinearLayout,但它從來沒有出現..

我認爲它是要麼「THIS」的上下文應該是別的,或者寬度/高度應該是父母以外的其他東西......任何想法/幫助將不勝感激。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    m = new Dialog(this,R.style.SplashScreen); 
    m.setContentView(R.layout.launch); 
    m.setCancelable(false); 
    m.show(); 
    setContentView(R.layout.main); 
    Handler h = new Handler(); 
    h.post(new Runnable(){ 
      public void run() { 
     // TODO Auto-generated method stub 
       setup(); 
      } 
    }); 

LAUNCH.XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
<Button android:text="Button" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/button1"></Button> 

</LinearLayout> 

回答

0

您的設置方法是在UI線程上運行。它會阻止顯示屏幕。嘗試使用的AsyncTask的設置,並在onPostExecute駁回飛濺()

+0

沒有骰子...代碼現在看起來像: – user282172

+0

最後一類InitializeTask擴展的AsyncTask <太虛,太虛,太虛> { \t \t保護無效onPreExecute (){ \t \t \t m.dismiss(); \t \t} \t \t \t \t保護無效onPostExecute() \t \t { \t \t} \t \t @覆蓋 \t \t保護無效doInBackground(虛空...... PARAMS){ \t \t \t // TODO自動生成方法存根 \t \t \t setup(); \t \t \t return null; \t \t} \t} – user282172

+0

'code' \t @Override \t公共無效的onCreate(捆綁savedInstanceState){ \t \t super.onCreate(savedInstanceState); \t \t m = new Dialog(this,R.style.SplashScreen); \t \t \t m.setContentView(R.layout.launch); \t \t m.setCancelable(false); \t \t m.show(); \t \t setContentView(R.layout.main); \t \t new InitializeTask()。execute(); } – user282172