activity启动黑屏的解决方案

本文探讨了Android应用重启过程中出现黑屏的原因,并提供了解决方案。包括优化Activity重启方式、去除预加载样式、改善用户体验等方面的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这边做了一个修改字体大小的功能,跳转出来后需要重启主页,但是总是会黑屏,一步步排查后发现是主页启动的时候就是会黑屏,主要是oncreate和onresume中做了太多的动作,导致setcontentview的姿势久了一些,这也是android中预加载的机制。

一、activity中的重启方法

1、简单粗暴

 this.recreate();

2、深思熟虑,去动画


            Intent intent = getIntent();
            overridePendingTransition(0, 0);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            finish();
            overridePendingTransition(0, 0);
            startActivity(intent);

二、去处预加载的style

1、主要是这一句

 <item name="android:windowDisablePreview">true</item>

其它的属性您随意

  <style name="AppTheme.Main" parent="@style/AppTheme">
        <!-- Customize your theme here. -->
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowDisablePreview">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>

2、当然你可以设置这个预加载页的背景图

三、建议

做一个对话框延迟销毁的操作增加点用户的体验,不会让界面看起来是卡死的状态

   showDialog();
        //2s后关闭  延迟执行任务 重启完主页
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                hideDialog();
                finish();
            }
        }, 2000);

四、have a nice National day!近期猥琐发育了一段时间,积累了一些笔记,预计会在放假期间共享出来,敬请期待….共勉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值