1 public class SplashActivity extends Activity{ 2  3  @Override 4  protected void onCreate(Bundle savedInstanceState) { 5   super.onCreate(savedInstanceState); 6   setContentView(R.layout.shan); 7    8   new Handler().postDelayed(new Runnable() { 9    @Override10    public void run() {11     Intent intent = new Intent(ActSplashScreen.this,MainActivity.class);  //从启动动画ui跳转到主ui(MainActivity)12     startActivity(intent);13     SplashActivity .this.finish();    // 结束启动动画界面14    }15   }, 3000);    //启动动画持续3秒钟16  }17     18 }

(以下转自:http://www.jb51.net/article/40111.htm)
Android 避免APP启动闪黑屏的解决办法(Theme和Style)
前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受。没办法,只能想想怎么解决,最后找到了下面的方法。闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面。也就是说需要处理一些数据后,才会显示。按照这种思路,是不是我把初始化的工作尽量减少就可以避免黑屏?事实是,就算你onCreate啥都不做,仍然会闪一下黑屏,因为初始化解析界面时需要一定时间。下面是解决办法:
1、自定义Theme

(1)设置背景图Theme

1 <style name="Theme.AppStartLoad" parent="android:Theme">  2     <item name="android:windowBackground">@drawable/ipod_bg</item>  3     <item name="android:windowNoTitle">true</item>  4 </style>

(2)设置透明Theme

1 <style name="Theme.AppStartLoadTranslucent" parent="android:Theme">  2     <item name="android:windowIsTranslucent">true</item> 3     <item name="android:windowNoTitle">true</item>  4 </style>

上面我定义了两种Theme,第一种Theme就是设置一张背景图。当程序启动时,首先显示这张背景图,避免出现黑屏。第二种Theme是把样式设置为透明,程序启动后不会黑屏而是整个透明了,等到界面初始化完才一次性显示出来。下面说说两种方式的优缺点:
•Theme1 程序启动快,界面先显示背景图,然后再刷新其他界面控件。给人刷新不同步感觉。
•Theme2 给人程序启动慢感觉,界面一次性刷出来,刷新同步。

2、修改AndroidManifest.xml
为了使上面Theme生效,我们需要设置一些Activity的Theme

 1 <application 2     android:allowBackup="true" 3     android:icon="@drawable/ipod_icon" 4     android:label="@string/app_name" 5     android:launchMode="singleTask"> 6 <!-- iPod主界面 --> 7 <activity 8     android:name="com.apical.apicalipod.IPodMainActivity" 9   <!-- 使用上面定义的样式 mythou-->10     android:theme="@style/Theme.AppStartLoad"11     android:label="@string/app_name" >12     <intent-filter>13     <action android:name="android.intent.action.MAIN" />14     <category android:name="android.intent.category.LAUNCHER" />15     </intent-filter>16 </activity>17 //......18 </application>

•可以在Activity里面增加上面自定义的样式。另外在Application里面增加也是可以的,而且是全局效果。
•自定义Theme放在 /res/values/styles.xml 里面。如果没有这个文件,自己添加一个即可。
•如果存在多个Activity切换,中间也可能会存在短暂黑屏问题。原因也是Activity启动的时候需要初始化加载数据,如果想避免这种情况,可以在你切换的Activity里面增加上面的样式。
•上面两种样式都可以避免黑屏。可以实际测试一下你的程序选择一种效果。
•这个只是把黑屏避免了,但是如果你程序初始化启动慢,还是会给人程序启动慢的感觉。需要自行优化程序初始化过程

更多相关文章

  1. N个非常有用的Android程序片段(持续更新)
  2. android中的类加载和静态成员变量的初始化
  3. 【从头学android】第二个程序同一个Activity中,切换布局时监听器
  4. android 应用程序退出
  5. Android本地程序的printf输出到logcat中
  6. Android中完全退出程序的四种方法
  7. java Android SDK安装与环境变量配置以及开发第一个Android程序

随机推荐

  1. 利用 nodejs 自动生成 Android(安卓)语言
  2. ant 打包android应用
  3. Android中有关Handler的使用(三)
  4. Weex list复用(三)
  5. TTS源码解析
  6. Android(安卓)近百个项目的源代码,覆盖And
  7. 给作为安卓开发新手的自己的几点建议(摘抄
  8. android平台上的文件下载,文件和文件的操
  9. android selector
  10. Android百分比布局(PercentRelativeLayou