Thanks for your answer. A possibly complicated solution would be to close the old database file > using SQLiteOpenHelper.close, and then open the new one.
I also try using SQLiteOpenHelper.close (which is a synchronized method) and open the new one but same problem... As for me, I would do this: keep the existing database open, and run an > intelligent merge with the new data. In my case, there is really no need to keep old data and merge. I think an intelligent merge (Which is already done by my server [PHP side]) will cost more time (even if my database is small). What do you think? 2011/8/7 Kostya Vasilyev <kmans...@gmail.com> > What's probably happening is that you are not closing the old database > file, so the application continues to read from it, and not from the new > one. > > This is entirely possible on Linux (and other Unixes): deleting an open > file is allowed, the applications don't notice, and the actual file data is > deallocated when it's finally closed (gracefully or not). > > You can see the code here, all it does it deletes the file, there is no > magic code to handle you switching the database underneath: > > > http://www.google.com/codesearch#oOy_5JrVRNM/trunk/frameworks/base/core/java/android/app/ApplicationContext.java&q=deleteDatabase%20package:android%20lang:%5Ejava$&type=cs&l=479 > > An ugly hack of a solution would be to terminate your application's process > (and immediately restart it), so the new process can open the new database > file. > > A possibly complicated solution would be to close the old database file > using SQLiteOpenHelper.close, and then open the new one. > > As for me, I would do this: keep the existing database open, and run an > intelligent merge with the new data. > > -- Kostya > > 07.08.2011 16:04, CocoRambo пишет: > > Hi, > > For a new application I try to make weekly data update by downloading > directly an SQLite file generated in PHP. > So when update is needed I: > > - Download the new SQLite file in ZIP (mydb.zip) > - Extract to a temporary file (mydb.db) > - Delete the old one (application.db via > deleteDatabase("application.db")) > - Put the new one instead (mydb.db becomes application.db) > > But when I go back to any of my listviews, data still come from the old > SQLite file. > > I tried to only delete old SQLite file (All it's ok and I can check thah > the file is really deleted via DDMS) > but my listviews data are still present... > > > Each of my ListFragment uses CursorLoader + Custom adapter that extends > CursorAdapter > It seems that loader is (re)created each time the fragment is created so I > don't think the problem is from this side... > > > Does anyone have same experience with SQLite database use? > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > > > -- > Kostya Vasilyev > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en