我想为我的应用程序添加一个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:主题行,它可以正常工作,但在启动时会显示可怕的普通白色屏幕。任何建议或想法?非常感谢。
发布logcat,并创建一个闪屏可能只是一个不错的布局等待移动到下一个屏幕,但后logcat和一些相关的代码,但如果你已经解决了它,那么没问题 – Elltz