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