Android tips
-
如果要在低版本系统上使用高版本系统才加入的类,可以在app中加入同名类,在高版本系统上安装时这个同名类会删除,还是使用系统的类,在低版本系统则使用在app中加入的类。
-
在不同的
PendingIntent
的Intent
中设置extra,在处理Intent
的地方获取的extra始终相同,可以通过设置不同RequestCode来区分不同的PendingIntent
。 -
对于 replace
Fragment
,通过代码和 layout 文件加入最初的Fragment
这两种方式之间是有区别的,replace 后最初Fragment
的onDestroyView
方法都会被调用,但再回退时,通过代码方式加入的最初Fragment
会重新显示,其onCreateView
方法会被调用,而 layout 文件方式不会重新显示。 -
在xml中加入fragment时键盘会自动弹出,通过代码加入时不会。
-
AsyncTask
在3.0以前是并行执行的,3.0及以后顺序执行的,AsyncTask
是通过静态的Handler
成员变量将结果post到主线程中执行的,所以要确保加载AsyncTask
类是在主线程中执行的,在4.1及以后系统已经确保的这一点。 -
如果自己decode ninepatch图片,要先compile ninepatch图片。
-
android ListView Adapter’s getView method sometimes provide a wrong type convertView. stackoverflow
-
市场解锁、gaeproxy等软件会修改运营商信息。
-
cookie里包含有特殊字符会导致请求失败。
-
Bitmap.createBitmap在低内存时在有些手机上可能返回null,而不是抛OutofMemoryError。
-
对于apk压缩包的操作应使用android自带的aapt,避免直接使用zip,直接使用zip会将apk里面的raw资源压缩,导致有些rom下读取raw文件失败。
-
如果不给
WebView
设置WebViewClient
,在有些手机上会自动跳到系统浏览器。 -
在Androd 7.0上如果使用
FLAG_ACTIVITY_REORDER_TO_FRONT
来启动activity,快速连续点击不断启动activity时,可能会回到桌面。 -
在MIUI10上通过
Fragment
的startActivity
方法来启动activity,通过theme中windowAnimationStyle
设置的进入动画会失效。