android读书知识点总结

一、《Android权威指南》读书笔记

layout_weight:属性值进行进行额外的空间分配。

为保证单例模式模式总是有Context可用,可调用getApplicationContext()方法,将不确定是否存在的Context替换为application context。任何时候,只要是应用层面的单例,就应该一直使用application context。

activity和fragment直接的数据传递:

1.通过intent的extra来进行数据的传递。(缺点:牺牲fragment的封装性为代价的,fragment不再是可复用的构建单元,因为fragment总是需要某个具体的activity来托管。)
2.通过fragment的argument来进行数据的绑定传递。(fragment.setArguments(Bundle))

FragmentStatePagerAdapter和FragmentPagerAdapter的区别:

两者的使用方法基本相同,区别在卸载不需要的fragment时,所采用的处理的方法不同。

FragmentStatePagerAdapter会销毁不需要的fragment。事物提交后,可将fragment从activity的FragmentManager中彻底删除。在销毁fragment时,它会将其onSaveInstanceState(Bundle)保存。用户切换回原来的界面后,保存的实例状态可用于恢复生成新的fragment。而FragmentPagerAdapter则会将fragment实例保存在FragmentManager中,因此FragmentPagerAdapter创建的fragment永远不会被销毁。

在fragment、activity、fragment之间传递数据可用通过设置setTargetFragment()来设置目标fragment。同时通过与startActivityForResult()和onActivityResult()类似的方法实现来进行数据的回传。

fragment保存实例调用方法setRetainInstance(boolean)。 当为true时,当设备旋转时以保存的fragment不会随着activity一起被销毁,它会一直保留到需要时原封不动传递给新的activity。(当然如果有大量的数据需要去保存,则采用onSaveInstanceState()方法)

当fragment中建立选项菜单时,需要调用setHasOptionsMenu(boolean),当建立浮动上下菜单时调用registerForContextMenu(View view),为浮动上下文菜单登记一个视图。

启用fragment视图上显示向左的图标,并开启应用图标向上导航按钮的功能。需要调用setDisplayHomeAsUpEnable(boolean)来支持该功能。

Android中的相机是一种独占资源,一次只能有一个activity能够调用相机。(使用相机开发时,在onStart()方法中加载图片,然后在onStop()方法中卸载图片是一种好的习惯。)

你可能感兴趣的:(读书笔记)