Android开发中的坑

1.Library中的R中的资源不是final类型的,这样导致library中不能使用case语句

public final class R {
    public static final class anim {
        public static int abc_fade_in=0x7f040000;
        public static int abc_fade_out=0x7f040001;
        public static int abc_grow_fade_in_from_bottom=0x7f040002;
        public static int abc_popup_enter=0x7f040003;
        ......

2.在Activity的onCreate方法里面显示PopupWindow异常

  Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

原因:

PopupWindow异常

3.Typeface初始化自定义字体慢,需要异步初始化

4.透明主题导致的问题
(1)Activity不会调用onStop方法,所以不要在此方法中进行操作。
(2)按Home按键时,会存在界面刷不干净的情况
如何设置透明主题

 <style name="TransLucent" parent="AppTheme">
        <!-- Customize your theme here. -->
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
    </style>

5.程序在未启动的情况下,静态注册的广播无法收到消息
解决办法:

从Android 3.1开始,系统给Intent定义了两个新的Flag,分别为FLAGINCLUDESTOPPEDPACKAGES(表示包含未启动的App)和FLAGEXCLUDESTOPPEDPACKAGES(表示不包含未启动的App),用来控制Intent是否要对处于停止状态的App起作用。

6.过度绘制问题

什么是过度绘制:在某个区域进行了多次绘制。
如何检查过度绘制:
这里写图片描述

这里写图片描述

选择显示过度绘制区域,然后界面变成下面样子

这里写图片描述

绘制颜色的标识,从好到差:蓝色(1x次绘制)-》浅绿色(2x绘制)-》淡红色(3x绘制)-》红色(4x绘制)。

一般情况下,最好把绘制控制在2次以下,3次绘制有时候是不能避免的,尽量避免,4次的绘制基本上是不允许的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值