質問の最後にある解決策
3,000 枚を超える画像を含む FTP サーバーがあり、画像名を ArrayList に保存しています。この後、それらをarraylistからデータベースに保存したいのですが、それには非常に時間がかかります! 見る:
と
FTPFile[] files = ftpClient.listFiles();
for (FTPFile file : files) {
imageNames.add(file.getName());
}
これらすべてのファイルのリストを取得し、それらを ArrayList imageNames に保存します。これは非常に高速で、1 ~最大 2 秒しかかかりません。
今、私はこの配列を sqlite データベースに書き戻したいと思っています。これを行うと、完了するまでに非常に時間がかかります。2分以上待った…
int i = imageNames.size() - 1;
int q = 0;
while(i >= 0){
String insert_arraylist = "INSERT INTO ARRAYLIST (STRING) VALUES ('"+imageNames.get(q)+"')";
db.execSQL(insert_arraylist);
i--;
q++;
}
では、どうすればこの挿入を高速化できますか??
前もって感謝します!
解決策: (2 分以上から 3 秒未満まで ;))
FTPFile[] files = ftpClient.listFiles();
insert_arraylist = "";
ContentValues con = new ContentValues();
for (FTPFile file : files) {
imageUrls.add("http://192.168.99.104/GetThePicture/thumbs/"+file.getName());
}
int i = imageUrls.size() - 1;
int q = 0;
db.beginTransaction();
try{
while(i >= 0){
String insert_arraylist = "INSERT INTO ARRAYLIST (STRING) VALUES ('"+imageUrls.get(q)+"')";
db.execSQL(insert_arraylist);
i--;
q++;
}
db.setTransactionSuccessful();
} catch(Exception e){
} finally {
db.endTransaction();
}