首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

再看Android官方文档之Fragment&数据保存

额,发现最近看的都有点快,总结的内容都有点少。不过只要不是为了总结而总结就好了,不想太多了。截至今天,看完了training的第一章。其实还是比较快的。

Fragment

创建Fragment

  • 当创建Fragment的时,必须重写onCreateView()回调方法来定义布局。
  • 当fragment从activity添加或者移除、当activity生命周期发生变化时,fragment通过生命周期回调函数管理其状态。

将Fragment添加到Activity

  • ActionBarActivity是FragmentActivity的一个子类。
  • FragmentTransaction完成操作,准备开始执行改变时,必须调用commit()方法。
  • 为了让用户向后导航fragment事务,我们必须在FragmentTransaction提交前调用addToBackStack()方法

Fragments间的交互

  • 所有fragment之间的交互需要通过他们关联的activity,两个fragment之间不应该直接交互。

数据保存

Preference

  • 如果创建了一个MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE 模式的shared preference文件,则其他任何app均可通过文件名访问该文件。
  • 写Shared Preference时,commit是同步方法,apply是异步方法,如果不需要返回值的话,可以完全用apply替代commit。

文件

  • app是默认被安装到internal storage的,但是可以通过在程序的manifest文件中声明android:installLocation 属性来指定程序安装到external storage
  • 目前,所有的apps都可以在不指定某个专门的权限下做读external storage的动作。但这在以后的安卓版本中会有所改变。为了确保app能持续地正常工作,我们现在在编写程序时就需要声明读权限。
  • getFilesDir 返回一个Fileapp的internal目录。
  • getCacheDir 返回app的internal缓存目录。确保这个目录下的文件能够在一旦不再需要的时候马上被删除,并对其大小进行合理限制,例如1MB。
  • 在访问external storage之前应对其可用性进行检查。可以通过getExternalStorageState来查询external storage的状态。
  • Public files 当用户卸载我们的app时,会被保留。例如,那些被我们的app拍摄的图片或者下载的文件。
  • Private files 当用户卸载我们的app时,系统会删除其下的private目录。例如,那些被我们的app下载的缓存文件。
  • getExternalFilesDir 方法创建的目录会在app被卸载时被系统删除。如果文件想在app被删除时仍然保留,使用getExternalStoragePublicDirectory.
  • 并没有强制要求在写文件之前去检查剩余容量。我们可以尝试先做写的动作,然后通过捕获 IOException 。

数据库

  • 确保在background thread(AsyncTask or IntentService)里面去执行 getWritableDatabase 或者 getReadableDatabase 。
下一篇
举报
领券