Я хотел добавить SplashScreen в свое приложение и провел небольшое исследование по этому вопросу. В некоторых учебниках говорилось, что вы можете создать активность и с помощью некоторых таймеров показать ее на несколько секунд. Я не мог заставить их работать, а затем на этой странице Как мне сделать заставку? второй ответ с наибольшим количеством голосов сказал, что вместо отображения активности (и из-за этого не заменит белый / черный экран загрузки запуска, а вместо этого добавит больше задержек) вы должны вместо этого создать пользовательский стиль и назначьте его своей деятельности в файле манифеста. Я сделал это, создал новый стиль следующим образом:
<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); line затем происходит сбой (он переходит в класс ZygoteInit.java и после этого происходит сбой при отладке точки останова). Если я уберу строки android:theme в манифесте, он работает нормально, но при запуске показывает ужасный простой белый экран. Любые предложения или идеи? Большое спасибо.