无法显示对话框/启动画面

时间:2011-10-06 13:16:41

标签: android dialog splash-screen

我正在尝试创建一个启动画面,以便在我的应用初始化时显示,使用此处讨论的对话框方法:

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

然而,无论我做什么,启动屏幕都不会出现,屏幕只是保持黑屏直到主屏幕完全实例化。我在setup()方法结束时调用m.dismiss()。

没有抛出任何错误,launch.XML只是一个linear_out,带有match_parent的宽度和高度,并且有一个按钮占用了enti视图,但它从未出现..

我认为它是“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>

1 个答案:

答案 0 :(得分:0)

您的设置方法在UI线程上运行。它可以防止显示spashscreen。尝试使用asynctask进行设置,并关闭onPostExecute()中的启动