2015-01-04 31 views
0

我想为我的应用程序添加一个SplashScreen,并对此事进行了一些研究。有些教程说,你可以创建一个活动,并用一些定时器显示它几秒钟。我无法让他们工作,然后在这个页面How do I make a splash screen?第二个顶部投票答案表示,而不是显示一个活动(因为这不会代替白/黑发射加载屏幕,而是添加更多的延迟),你应该而是创建一个自定义样式,并将其分配给Manifest文件中的活动。我这样做,创造了一个新的风格是这样的:将自定义初始屏幕样式定义为Activity后,super.onCreate会崩溃?

<style name="splashScreenTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/launchscreen</item> 
</style> 

在styles.xml和改变了我的清单到这一点:

<application 
    android:name=".EFBApp" 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivityDrawer" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:theme="@style/splashScreenTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

当我运行我的应用程序,我可以看到启动画面完美,但那么它崩溃。通过断点,我发现当MainActivityDrawer(我的主类)到达super.onCreate(savedInstanceState);行它然后崩溃(它进入ZygoteInit.java类,然后崩溃时断点调试)。如果我拿走Manifest中的android:主题行,它可以正常工作,但在启动时会显示可怕的普通白色屏幕。任何建议或想法?非常感谢。

+0

发布logcat,并创建一个闪屏可能只是一个不错的布局等待移动到下一个屏幕,但后logcat和一些相关的代码,但如果你已经解决了它,那么没问题 – Elltz

回答

0

好吧,所以我设法让它不会崩溃,而不是分配父母作为Theme.AppCompat.NoActionBar,我只使用AppTheme,它现在起作用。我希望这可以帮助任何人。