美文网首页
启动,关闭项目时,黑白屏问题及处理方法

启动,关闭项目时,黑白屏问题及处理方法

作者: 流穿枫 | 来源:发表于2017-10-31 11:59 被阅读0次

    在启动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());方式, 就是出现黑屏的情况了。
    
    
    

    相关文章

      网友评论

          本文标题:启动,关闭项目时,黑白屏问题及处理方法

          本文链接:https://www.haomeiwen.com/subject/ikfbpxtx.html