Chr*_*ris 2 sqlite android insert android-loader
这个问题将是一个问题内容解析器与光标加载器的后续问题. 答案清楚地说明了如何使用内容解析器将记录插入到sqlite Db中.我的问题如下:
例如:
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
switch (id) {
case AppConstants.LOADER_ADD_FAV_PHONE_NUM:
ContentValues values = new ContentValues();
values.put(DBHelper.TM_DB_COLUMN_PHONE_NUMBER,
directionOrder);
values.put(TransitMeDBHelper.TM_DB_COLUMN_NAME_ID, selectionArgs[0]);
Uri insertFavStop =getContentResolver().insert(TransitMeContentProvider.CONTENT_URI_INSERT_FAV_PHONE,
values);
break;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这会运行主UI线程或工作线程中的功能吗?我知道我不会收到回调,因为内容解析器将返回URI而不是包含数据的游标.
我尝试运行此代码,但它表现得有点奇怪..重复插入被记录,它不是很有意义,有人可以向我展示一些使用Loader进行插入操作的正确资源(我看过很多带有查询示例的例子,它可以工作喜欢魅力:))
感谢您的时间 .
我可以使用加载程序(Normal Loader)来实现此功能吗?
您不能使用默认值CursorLoader来插入数据.如果你实现自己的,Loader你可能会使用该loadInBackground方法进行插入,但这将使你的代码充其量尴尬(我不知道它是否真的有效).
这会运行主UI线程或工作线程中的功能吗?我知道我不会收到回调,因为内容解析器将返回URI而不是包含数据的游标.
加载器回调将在它们实现的线程(最有可能是UI主线程)上运行,因此您在getContentResolver().insert()主UI线程上执行可能阻塞主UI线程的操作.
我尝试运行此代码,但它的行为有点奇怪..重复插入记录,它不是很有意义,
你测试过这种onCreateLoader方法的次数吗?
有人可以向我展示一些使用Loader进行插入操作的正确资源(我已经看过很多带有查询示例的例子,它就像魅力:)
不要使用/尝试使用a Loader在ContentProvider/ Database中插入数据.它就像查询的魅力一样,因为加载器被设计为从数据源加载数据(而不是插入数据),这就是它们的目的.如果要插入数据使用AsyncTask(也看看AsyncQueryhandler),常规线程.
| 归档时间: |
|
| 查看次数: |
2328 次 |
| 最近记录: |