在启动APP时,在视图加载完成的这段时间内,app显示的是window的背景图片,默然为主题设置的颜色
Theme.AppCompat.Light.NoActionBar 白色 或者night 黑色
处理方法
1、启动
<!--启动页主题-->
<style name="Loading" parent="AppTheme">
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@mipmap/loadback</item>
</style>
这样设置主题,点击桌面应用图标后,先加载这里设置的背景图片。
2、关闭应用
我的解决的方法是:通过异步,关闭应用。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
System.exit(0);
android.os.Process.killProcess(android.os.Process.myPid());
}
},800);
}
return super.onKeyDown(keyCode, event);
}
处理退出APP的黑白屏问题,还可以通过设置主题中<item name="android:windowIsTranslucent">true</item> 把最底层(我的是mainactivity)的activity主题此属性设置成true
这种方式遇到的问题是,如果项目中集成了侧滑finish页面,就会用到这个属性,但是某些机型会出现侧滑时,背景会直接显示桌面的情况。这时候就要把最底层的activity(mainactivity)的这个android:windowIsTranslucent属性修改成false。
这样就造成了,退出时,如果使用
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
System.exit(0);
android.os.Process.killProcess(android.os.Process.myPid());方式, 就是出现黑屏的情况了。
网友评论