问题讲解01

Scroll Down

1. Listview与RecyclerView的区别

  • 布局效果:
    ListView 的布局比较单一,只有一个纵向效果;
    RecyclerView 的布局效果丰富, 可以在LayoutMananger中设置:线性布局(纵向,横向),表格布局,瀑布流布局
  • 动画效果
    Listview中删除或添加item时,item是无法产生动画效果的。
    RecyclerView中添加、删除或移动item时有两种默认的效果可以选择SimpleItemAnimator(简单条目动画) 和 DefaultItemAnimator(原样的条目动画)
  • 局部刷新
    ListView中通常刷新数据是用notifyDataSetChanged() ,但是这种刷新数据是全局刷新的(每个item的数据都会重新加载一遍),这样一来就会非常消耗资源;
    RecyclerView中可以实现局部刷新,例如:notifyItemChanged();
  • 空数据处理
    ListView中可以通过addHeaderView() 与 addFooterView()来添加头部item与底部item,来当我们需要实现下拉刷新或者上拉加载的情况;而且这两个API不会影响Adapter的编写;
    RecyclerView中并没有这两个API,所以当我们需要在RecyclerView添加头部item或者底部item的时候,我们可以在Adapter中自己编写,根据ViewHolder的Type与View来实现自己的Header,Footter与普通的item,但是这样就会影响到Adapter的数据,比如position,添加了Header与Footter后,实际的position将大于数据的position;

2. Activity生命周期粗体

  1. onCreate:Activity正在创建,生命周期的第一个方法,需要setContentView加载layout。这里不建议耗时操作,只做layout和控件初始化。此方法传递一个 Bundle 对象,可以获取上一个Activity 的状态。
  2. onStart:Activity正在启动,此时Activity已处于可见状态,只是还没有在前台显示,因此无法与用户进行交互,这里也可以初始化控件,但官方推荐在onCreate进行。如果 Activity 转入前台,则后接 onResume,如果 Activity 转入隐藏状态,则后接 onStop。
  3. onResume:Activity已在前台可见,可以跟用户进行交互,并且该Activity处于堆栈的顶层,可在此初始化一些资源,后接onPause方法。
  4. onPause:跳转到其他activity时调用,此方法中可以做一些数据存储或者动画停止或者资源回收的操作,但不能太耗时,因为android中指定onPause在500ms內没有执行完毕的话就会强制关闭Activity。如果Activity返回前台,则后接onResume,如果Activity转入对用户不可见状态,则后接onStop。
  5. onStop:表示Activity即将停止或者完全被覆盖,此时Activity不可见,仅在后台运行,也就是还在内存中,还没有被销毁,可以做一下非耗时操作。如果Activity恢复与用户的交互,则后接onRestart,如果Activity被销毁,则后接onDestroy
  6. onRestart:Activity在这时可见,当用户按Home键切换到桌面后又切回来或者从后一个Activity切回前一个Activity就会触发这个方法在,始终后接onStart。
  7. onDestory:在Activity被销毁前调用,activity结束(调用finish)或者系统内存不够需销毁activity时调用,可以根据isFinishing()方法区分这两种情形。可做回收工作和最终的资源释放。

3. Fragment 生命周期粗体

  1. 官方生命周期图

4. EventBus 粗体

支付宝 微信