问题及解决方案-面试及经验增长

来源:互联网 发布:windows r 编辑:程序博客网 时间:2024/04/28 21:02
> Android 多个Fragment嵌套导致的三大BUG- http://blog.csdn.net/megatronkings/article/details/51417510
> 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法- http://blog.csdn.net/primer_programer/article/details/27184877
> fragment中嵌套viewpager,vierpager中有多个fragment,不显示 -http://blog.csdn.net/shaoyizhe2006/article/details/27352349
        用getChildFragmentManager() 替换。
> Activity动态添加Fragment-- http://blog.csdn.net/qq_16953755/article/details/51372380

> 【Android面试】(一):Android中activity保存状态和数据到底该在哪个方法中进行- http://blog.csdn.net/cyp331203/article/details/44985087

> Activity生命周期:
  启动Activity:onCreate->onStart->onResume
  锁屏或被其它Activity覆盖:onPause->onStop
  解锁或由被覆盖状态再回到前台:onRestart->onStart->onResume
  跳转到其它Activity或按Home进入后台:onPause->onStop
  退回到此Activity:onRestart->onStart->onResume
  退出此Activity:onPause->onStop->onDestory
  对话框弹出不会执行任何生命周期(注:对话框如果是Activity(Theme为Dialog),还是会执行生命周期的)
  从A跳转到B:A-onPause->B-(onCreate->onStart->onResume)-A-onStop
  从B返回到A:B-onPause->A-(onRestart->onStart->onResume)-B-(onStop->onDestroy)
  默认情况下,切换屏幕方向时Activity会销毁、重建 onPause->onStop->onDestroy->onCreate->onStart->onResume

> Activity启动模式
  standard 标准模式(activity默认的): 每次调用startActivity, 都会把activity给创建.
  singleTop 单一顶部模式: 每次调用startActivity, 需要判断当前的activity是否已经被创建过并且查看任务栈的顶部是否是当前的 activity, 如果是, 调用onNewIntent方法, 如果不是, 就创建一个新的activity实例.
应用场景: 非法程序员, 写的流氓程序, 一直在弹出某个页面.
  singleTask 单一任务栈模式: 如果任务栈中已经存在当前activity, 再去调用startActivity, 会调用当前任务栈的onNewIntent方法. 同时 , 会把所有以上的activity都给清除出栈.
应用场景: 如果一个界面显示的资源非常大, 只需要初始化一次实例.
  singleInstance 单一实例模式: activity会在一个新的任务栈中实例化, 并且其他的activity不会创建在新的任务栈中. 始终在整个系统中 会被初始化一次.
应用场景: 在整个系统中, 只需要初始化一次的页面.

  onNewIntent()

  如果IntentActivity处于任务栈的顶端,也就是说之前打开过的Activity,现在处于onPause、onStop状态的话,其他应用再发送Intent的话,执行顺序为:
onNewIntent,onRestart,onStart,onResume。

> Fragment生命周期
  onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onPause->onStop->onDestroyView->onDestroy->onDetach

> Serializable和Parcelable的区别
  都能实现序列化且可用于Intent间的数据传递
  Serializable是Java中的序列化接口,使用简单但开销大,序列化和反序列化过程需要大量I/O操作。
  Parcelable更适合Android平台,使用麻烦但效率高,主要用在内存序列化上。


> 文件和数据库哪个效率高
数据量大时使用数据库效率高
数据量小时使用文件效率高

1 0
原创粉丝点击