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按键时,会存在界面刷不干净的情况
如何设置透明主题

 

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

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

6.过度绘制问题

什么是过度绘制:在某个区域进行了多次绘制。
如何检查过度绘制:
Android开发中的坑_第1张图片

Android开发中的坑_第2张图片

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

Android开发中的坑_第3张图片

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

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

你可能感兴趣的:(Android开发中的坑)