活动生命周期后活动的最佳结构 - 在具有DB支持的用户屏幕的情况下

时间:2011-11-06 22:02:30

标签: android android-activity

我已经实现了几个小应用程序的写作 - 再次阅读活动生命周期文档几次http://developer.android.com/reference/android/app/Activity.html - 有关如何构建我未遵循的活动的良好指导。

我希望在使用DB值的用户屏幕活动的情况下明白这一点。

这是构建activities that require user interaction in combination with DB usage的最佳推荐方法吗?

1. onCreate()
  • 的setContentView
  • 获取并设置固定的UI元素,例如x = findViewById
  • 设置setOnClickListeners和其他Listeners
  • 活动的任何其他稳定/未更改的元素
2. onResume()
  • 因为它也叫做AFTER EACH onCreate ......
  • 在这里打开数据库
  • 从DB获取值
  • 使用DB依赖值填充用户字段
  • 配置依赖于DB值而不是稳定值的屏幕元素
  

3   。的onPause()

  • 完成所有数据库更新,确保一致的数据库
  • 保存活动重新开始时所需的所有用户创建的数据
  • 关闭DB

当然这不是黑白分明,但我是否正确理解这是一般设计原则,因此活动对于电话,内存不足等情况的中断是稳定可靠的...... < / p>

非常感谢你的投入!

1 个答案:

答案 0 :(得分:0)

我认为关闭数据库并不重要:http://www.touchlab.co/blog/single-sqlite-connection/

这方面有很多帖子。最近的一个:

SQLiteDatabase close() function causing NullPointerException when multiple threads

另外,我不确定为什么要在onResume中执行所有db调用。如果您只是加载一次数据,那么在onCreate中也会很好(不过我会把它放在AsyncTask中)。