扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
之前在github上更新了些关于面试类的文章,含有从基础到进阶。含有BATJ.字节跳动面试专题,算法专题,高端技术专题,混合开发专题,java面试专题,Android,Java小知识,到性能优化.线程.View.OpenCV.NDK等应有尽有。还有辅之相关的视频+学习笔记
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、滨湖网络推广、小程序设计、滨湖网络营销、滨湖企业策划、滨湖品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供滨湖建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
https://github.com/xiangjiana/androids
好久没更新了,公司电脑太卡了o(╥﹏╥)o。(把所以的知识+每日一题整理成了份983页的PDF)
(更多完整项目下载。未完待续。源码。图文知识后续上传github。)
可以点击关于我联系我获取完整PDF
(VX:mm14525201314)
参考回答:
Fragment 从创建到销毁整个生命周期中涉及到的方法依次
为:onAttach()
→onCreate()
→onCreateView()
→onActivityCreated()
→onStart()
→onR
→
esume()onPause()
→onStop()
→onDestroyView()
→onDestroy()
→onDetach()
,其中和 Activity 有不少名称相同
作用相似的方法,而不同的方法有:
onAttach()
:当 Fragment 和 Activity 建立关联时onCreateView()
:当 fragment 创建视图调用,在onActivityCreated()
:当与 Fragment 相关联的onCreate()
之后调用;onDestroyView()
:在 Fragment 中的布局被移除时onDetach()
:当 Fragment 和 Activity 解除关联时参考回答:
相似点:都可包含布局、可有自己的生命周期
不同点:
参考回答:
IllegalStateException
异常;getFragmentManager
、 getSupportFragmentManager
、getChildFragmentManager
之间的区别?
参考回答:
getFragmentManager()
所得到的是所在 fragment 的 父容器getChildFragmentManager()
所得到的是在getChildFragmentManager();
getFragmentManager()
来获取FragmentManager()
对象,getSupportFragmentManager()
来FragmentPagerAdapter
与 与 FragmentStatePagerAdapter
的区别与使用场景参考回答:
相同点 :二者都继承 PagerAdapter
不同点 :FragmentPagerAdapter
的每个 Fragment 会持久的保存在 FragmentManager
中,只要用户可以返回到页面
中,它都不会被销毁。因此适用于那些数据 相对静态的
页,Fragment 数量也比较少的那种;FragmentStatePagerAdapter
只保留当前页面,当页面不
可见时,该 Fragment 就会被消除,释放其资源。因此适用
于那些 数据动态性较大、 占用内存较多,多 Fragment 的情
况;
参考解答:在正常情况下,Activity 的常用生命周期就只有如下 7 个
onCreate()
:表示 Activity 正在被创建,常用来 初始化工作,比setContentView
加载界面布局资源,初始化 Activity 所onRestart()
:表示 Activity 正在重新启动,一般情况下,当前Acitivty
从不可见重新变为可见时,OnRestart
就会被调用;onStart()
:表示 Activity 正在被启动,此时 Activity 可见但不onResume()
:表示 Activity 获得焦点,此时 Activity 可见且在onStart
的区别所在;onPause()
:表示 Activity 正在停止,此时可做一些 存储数据、onPause
必须先执行完,新 Activity 的 onResume
才会onStop()
:表示 Activity 即将停止,可以做一些稍微重量级的回onDestroy()
:表示 Activity 即将被销毁,这是 Activity 生命周延伸:从 整个生命周期来看,onCreate
和 onDestroy
是配对的,分别标识着 Activity 的创建和销毁,并且只可能有 一次调用; 从 Activity 是否可见来说,onStart
和 onStop
是配对的,这两个方法可能被 调用多次; 从 Activity 是否在前台来说,onResume
和 onPause
是配对的,这两个方法可能被 调用多次; 除了这种区别,在实际使用中没有其他明显区别;
DialogActivity
呢 ?参考解答:Activity A 启动另一个 Activity B,回调如下
onPause()
→ Activity B 的 onCreate()
→onStart()
→ onResume()
→ Activity A 的 onStop();
DialogActivity
,则不会回调 A 的onStop;
onSaveInstanceState()
方法的作用 ? ? 何时会被调用?参考解答:
发生条件:异常情况下( 系统配置发生改变时导致 Activity被杀死并重新创建、资源内存不足导致低优先级的 Activity 被杀死)
onSaveInstanceState
来保存当前 Activity 的状态,onStop
之前,与 onPause
没有既定的时序关系;onRestoreInstanceState
,onSave
(简称)方法所保存的 Bundle 对象 同时传参给onRestore
(简称)和onCreate()
,因此可以通过这两个方法判断Activity 是否被重建,调用在 onStart
之后;参考回答:
singleTop
栈顶复用模式:如果新 Activity 已经位于任务栈的栈顶,那么此 Activity 不会被重新创建,同时会回调 onNewIntent
方法,如果新 Activity 实例已经存在但不在栈顶,那么Activity 依然会被重新创建;onNewIntent
方法,此模式启动 Activity A,系统首先会寻找是singleInstance
单实例模式:这是一种加强的 singleTask
模参考回答:
singleTask
启动模式,其效果和在 XML 中指定该启动模式相同;singleTop
启动模式,其效果和在 XML 中指定该启动模式相同;singleTask
模式一起出现,在这种情况下,被启动 Activity 的实例如果已经存在,那么系统就会回调onNewIntent
。如果被启动的 Activity 采用 standard 模式启动,那么它以及连同它之上的 Activity 都要出栈,系统会创建新的Activity 实例并放入栈中;参考回答:
Activity 创建时通过 attach()
初始化了一个 Window 也就是PhoneWindow
,一个 PhoneWindow
持有一个 DecorView
的实例,DecorView
本身是一个 FrameLayout
,继承于 View,Activty
通过setContentView
将 xml
布局控件不断 addView()
添加到 View 中,最终显示到 Window 于我们交互;
参考回答:
android:configChanges
时,切屏会销毁当前Activity,然后重新加载调用各个生命周期,切横屏时会执行一onPause()
→onStop()
→onDestory()
→onCreate()
→onStart()
→onResume()
android:configChanges=" orientation"
,经过onConfigurationChanged
方法minSdkVersion
和 targetSdkVersion
)请查看完整的PDF版
(更多完整项目下载。未完待续。源码。图文知识后续上传github。)
可以点击关于我联系我获取完整PDF
(VX:mm14525201314)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流