出于演示目的,我想构建相当大的 SQLite 产品表。我在主屏幕活动中有两个菜单项——一个用于清除表格,另一个用于填充演示项目。为了向客户展示设备的能力,我插入了 30 万条记录,这需要 3 分钟多一点。
数据在内容提供者内部生成,使用特殊的 URI 进行插入。调用时,以下代码在内容提供程序中处于活动状态。
public Uri insert(Uri uri, ContentValues values) {
int uriType = sURIMatcher.match(uri);
SQLiteDatabase sqlDB = databaseHelper.getWritableDatabase();
String path;
long id = 0;
switch (uriType) {
...
case PRODUCTS_INSERT_DEMO_DATA:
insertDemoProducts();
...
break;
}
insertDemoProduct()
实施显示在单独的问题中。基本上,它在同一个线程中运行。因此,应用程序在上述 3 分钟内没有响应。我可以提前生成它,然后再展示给客户。无论如何,我想学习如何实现它,以便我能够看到进度并能够更早地停止它。
更新:我将实现从 Web 服务获取数据的机制。这样,我更喜欢对于该任务可能看起来过于复杂的解决方案(在循环中填充数据),但这将是未来功能的测试平台。
感谢您的任何提示。