有人可以在本教程中向我解释控制流程:http://www.vogella.de/articles/AndroidSQLite/article.html#tutorialusecp
我无法获得正确的流量。我完全是这个内容提供商等的新手。
我想知道实际创建数据库的时间,生命周期方法是什么以及此项目中方法执行的顺序是什么?
答案 0 :(得分:3)
终于找到了Flow !! :
首先,在应用程序启动时调用Content Provider的onCreate
,因为我们已在Manifest中注册了它。
然后,我们的第一个活动的onCreate
,即ToDodOverviewActivity的onCreate
。
拨打fillData()
的电话会有initLoader()
来电,而后者会调用装载机的onCreateLoader
。
然后,在
CursorLoader cursorLoader = new CursorLoader(this,
MyTodoContentProvider.CONTENT_URI, projection, null, null, null);
创建Loader。查询ContentResolver并返回Cursor的加载器。此类以标准方式实现Loader协议,用于查询游标,在AsyncTaskLoader上构建,以在后台线程上执行游标查询,以便它不会阻止应用程序的UI。
这反过来导致调用DataHelper和ToDoTable等的onCreate()
,这里每个人都知道关于SQLiteOpenHelper的流程。
最后,调用onLoadFinished()
,然后交换光标并更新适配器。