2013-11-27 58 views
0

我將關於用戶音軌的信息存儲在數據庫中(它位於內部存儲器中)。我有這個函數在數據庫適配器類插入數據:Android SQLite:優化插入時間

public void addTracks(ArrayList<Track> tracks){ 
    for (Track track : tracks) { 
     addTrack(track); 
    } 
} 

public long addTrack(Track track) { 
    ContentValues initialValues = createContentValues(track.title, track.artist, 
      track.id, track.url, track.lyrics_id, track.owner_id, track.cover_small_url, track.cover_large_url); 
    return database.insert(TABLE_USER_TRACKS, null, initialValues); 
} 

這工作正常。但是,當用戶有數千個音軌時,需要很長時間(〜10秒)。

有沒有辦法讓插入更快?

回答

2
try 
{ 
    db.beginTransaction(); 
    for (Track track : tracks) 
    { 
    addTrack(track); 
    } 
    db.setTransactionSuccessful(); 
} 
catch (SQLException e) {} 
finally 
{ 
    db.endTransaction(); 
} 

瞭解更多關於數據庫事務here