使用数据库在Android App中处理大型文本文件

时间:2014-03-07 07:45:01

标签: android

我正在尝试开发一个Android应用程序,它从txt文件(大约700万行,接近32 MB)中获取一些数据,根据某些条件将它们放入SQL数据库并检索它们。就数据库而言,它运行良好,因为我已经以另一种方式测试它,但由于某种原因,它很难处理文件,我的代码变得非常反应迟钝。这样做的有效方法是什么?

2 个答案:

答案 0 :(得分:0)

如果耗时部分是文件输入,则可能正在使用异步任务在后台执行工作(读取文件并准备数据库),然后在完成后通知用户。这样用户可以继续使用该应用程序。以下是一些链接:

AsyncTask

AsyncTask example

根据文档,asyncTask只能用于不那么长的操作(仅几秒钟):

  

理想情况下,AsyncTasks应该用于短时间操作(几秒钟)   最多。)如果你需要保持线程长时间运行   时间,强烈建议您使用提供的各种API   java.util.concurrent pacakge,如Executor,ThreadPoolExecutor   和FutureTask。

答案 1 :(得分:0)

  1. 在单独的线程(异步任务)中运行代码
  2. 而不是一次加载整个文件,逐行处理。这将有助于减少内存消耗