1.finish之后,onDestroy会立刻执行吗?
onDestroy不一定立刻执行,有时候在onResume和onActivityResult以及onNewIntent等函数中,ActivityMangeer里面取得的topActivity可能是错的。
2.收到同一账号其他端顶号的通知时候,在清空数据,清空栈之前注意有没有必须关闭的业务,比如主播调用下线接口等强制业务
3.在监听中执行业务方法,注意该方法避免与监听重名,如果重名会导致栈溢出卡死。
4.缓冲,缓存
对于类似聊天室这种高密集型业务,可以使用缓冲,进行延后加载,比如100毫秒内的多次刷新请求可以在下一个100毫秒再执行。
经常使用的数据可以做内存静态缓存,不过要记得在合适的时机释放
5.部分关键文件校验一致性,crc效率高于md5,sha1
比如下载APP资源时的校验,通常可以用crc校验
6.ScrollView 中嵌套RecyclerView时候,使用android:descendantFocusability="blocksDescendants"兼容显示不全的问题,但是edittext会失效 ,正确的方法是使用nestscrollview。
7.有些页面使用LinearLayout不可以,使用RelativeLayout却可以,因为RelativeLayout两次measure,而LinearLayout只有一次measure
8.textview 原则上尽量指定宽高,自己的宽是match_parent,父控件是wrap_content,有时候会有问题
9.全屏dialog在部分手机会自动弹出输入法,建议加上如下代码
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
网友评论