Java 建设一段时间,导入大量数据

Java 建设一段时间,导入大量数据,java,android,Java,Android,我正在创建一个测试应用程序,其目的是将大量文本消息导入sms收件箱。我在“地址”和“正文”两栏中有几千条信息。我可以使用csv、sqlite或字符串数组格式。我不确定如何解决这个问题,从而使while循环有效,以及我可能希望以何种方式解析数据 请说明实现这一目标的最佳方法 为了简单起见,我在这里尝试将其作为数组,但存在一些语法错误。使用数组向数据库中添加值的正确方法是什么 以下是我到目前为止的情况: private void importSms(final String[] ad

我正在创建一个测试应用程序,其目的是将大量文本消息导入sms收件箱。我在“地址”和“正文”两栏中有几千条信息。我可以使用csv、sqlite或字符串数组格式。我不确定如何解决这个问题,从而使while循环有效,以及我可能希望以何种方式解析数据

请说明实现这一目标的最佳方法

为了简单起见,我在这里尝试将其作为数组,但存在一些语法错误。使用数组向数据库中添加值的正确方法是什么

以下是我到目前为止的情况:

        private void importSms(final String[] addressvariable, final String[] bodyvariable) {
    Thread queue = new Thread(new Runnable() {
        public void run() {
             while(true) { //will have to define this boolean
                 ContentValues values = new ContentValues{);
                 values.put("address", [addressvariable]);
                 values.put("body", [bodyvariable]);
                 getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
             }
         }
       }); 
       queue.start();

像这样的长时间操作应该使用。这将确保您不会阻塞UI线程,并允许您在处理过程中轻松显示进度对话框,随时通知用户


至于格式,我会选择一个数据库,因为它可以很容易地在以后升级和修改,以适应新的需要。为此使用字符串数组将相当复杂,尤其是在消息已格式化的情况下。CSV解析在本机上不受支持,所以我不会在数据库上选择它

1.
UI工作
放在
UI线程
上,将
非UI工作
放在
非UI线程
上,被认为是一种很好的编程方法,但随着安卓
蜂巢
版本的到来,它成为了
规则

2.Android应用程序总是在
DUI
(专用UI线程)上启动

3.您可以使用
线程
,这将在
单独的非UI线程
上执行耗时较长的过程(创建任何其他线程,都会立即删除UI线程)

4.现在,我们可以使用
处理程序
UI线程
上发布
非UI线程
输出


5.现在使用线程和处理器似乎有点势不可挡,因此
AsyncTask
被引入Android,也被称为
无痛线程
。。。这有助于用户界面和非用户界面线程的同步。

您对它的效率不高有什么担心?@Bill有几千条消息,我想一次加载一条,而不是批量加载,以免冻结手机。