xinyu618

Results 3 comments of xinyu618

场景 1、触摸无响应5s 2、BroadCastReciver 前台处理超过10s 后台超过60s 3、Server 前台处理超过20s 后台超过200s ANR出现的类型有两种 1、主线程耗时导致 2、CPU、内存、IO 占用过高资源耗尽(其他进程也可以导致) 如何避免 1、不要在主线程中做耗时的操作 2、避免CPU占用过高,简化方法,减少执行时间 3、避免内存占用过高,防止内存泄漏

首先并不能说完全用SparseArray替代。在key是int并且数据量小于1000的情况下,用SparseArray替代确实在空间上性能要好,但是在时间上只能接近HashMap而已。 SparseArray的key固定是int所以减少了装箱和拆箱的操作 SpareArray内部是运用两个数组进行维护一个是keys存储key的,一个是values存储value的。由于key是int所以没有hash碰撞,在查找位置时用二分查找的方式,时间上比较有优势。 存储方法由于SparseArray存储的结构比HashMap简单,不需要维护链表等。所以存储上比HashMap好

1、对于Activity和Fragment之间的相互调用 (1)Activity调用Fragment 直接调用就好,Activity一般持有Fragment实例,或者通过Fragment id 或者tag获取到Fragment实例 (2)Fragment调用Activity 通过activity设置监听器到Fragment进行回调,或者是直接在fragment直接getActivity获取到activity实例 2、Activity如果更好的传递参数给Fragment 如果直接通过普通方法的调用传递参数的话,那么在fragment回收后恢复不能恢复这些数据。google给我们提供了一个方法 setArguments(bundle) 可以通过这个方法传递参数给fragment,然后在fragment中用getArguments获取到。能保证在fragment销毁重建后还能获取到数据