如何避免在我的应用正在加载时出现Android黑屏问题?

9
如何避免在Android应用程序加载时出现黑屏?我已将所有东西从onCreate移到AsyncTask中,但仍然在开始时有黑屏。我的默认(第一个)活动是Main,如果有一个参数,我会立即加载Personal活动而不显示Main,否则我会显示Main活动。是否有人能为我提供解决方案? 我尝试过http://blog.iangclifton.com/2011/01/01/android-splash-screens-done-right/,但没有帮助。

发一些代码 - 这可能有帮助,否则我们只是在猜测... - Graham Smith
请在此处查看解决方案:https://developer.android.com/topic/performance/vitals/launch-time#themed - Geet Thakur
4个回答

20

我不确定。

但是,在你的activity中的Manifest中尝试这个:...

android:theme="@android:style/Theme.Translucent" 
或者。
android:theme="@android:style/Theme.Light"

我看到了一个不错的启动画面解决方案...希望它有用

https://stackoverflow.com/a/8654361/762919


1
我苦苦挣扎了很久。这解决了我的问题。只需在清单文件中添加这一行就搞定了。谢谢 April。 - Karthik Andhamil
谢谢,这给了我一个想法,可以制作一个类似Flash的自定义主题,并解决了我的问题。对于那些正在寻找相同答案的人,这就是我做的方式。它对我有用,希望也能帮助你们。在style.xml中: <style name="MySplashTheme" parent="AppBaseTheme"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/splash_image</item> </style> 在活动标签中的清单文件中:android:theme="@style/MySplashTheme" - Syed Raza Mehdi
但是这种解决方案存在一个问题,它会锁定您的屏幕方向为竖屏。;( - Stranger

14
在style标签中的android style.xml文件中添加以下行。
 <item name="android:windowDisablePreview">true</item>

完整代码:

 <style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
    <item name="android:windowDisablePreview">true</item>
</style>

我的应用程序已经完成了。 - Shadab K

3

优化您的代码,尽量减少在onCreate()中的代码。我曾经也遇到过这个问题,通过减少onCreate()中的代码,我解决了这个问题。

祝你好运!


1

既然您已经清除了onCreate()并将初始化任务分配给工作线程,那么您的应用程序启动后屏幕仍然保持黑暗一段时间的事实可能是由于初始显示中图形的复杂性(而不是您的初始化代码,这可能与模型相关,而不是视图相关)。

您说适用于您的解决方案是使用可见背景作为您的主题。我很高兴您发现这足够了,但对于某些目的,更具体的(例如,标志/应用程序名称)闪屏(因为它使用更简单的图形而快速显示)可能更理想。

请参阅下面链接的答案,其中包含如何实现快速显示的闪屏的详细说明(带有示例代码):

创建真正的闪屏

这也讨论了您接受的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接