Ik zit met min of meer exact hetzelfde probleem en ik heb een openstaand defect gevonden dat logisch is...
https://code.google.com/p/android/issues/detail?id=174566
Mijn tijdelijke oplossing - hoewel niet de beste oplossing - is om nooit de databaserevisie uit te voeren en dit zelf bij te houden, en dus nooit onUpgrade()
aan te roepen en voer handmatig een upgrade uit bij het updaten van de app.
Als alternatief, als u een kleine DB heeft die alleen-lezen is, kunt u de kopie van de db in activa activeren op elke onCreate()
in DBHelper
class, maar dit kan ongewenste problemen opleveren als het bestandssysteem vol is, dus doe dit alleen terwijl u op zoek bent naar een betere oplossing.
@Override
public void onCreate(SQLiteDatabase db) {
// Workaround for Issue 174566
myContext.deleteDatabase(DB_NAME);
try {
copyDataBase();
}
catch(IOException e) {
System.out.println("IOException " + e.getLocalizedMessage());
}
}
Mijn app wordt nu geüpgraded zoals het hoort met mijn tijdelijke oplossing en door te beoordelen hoe lang het geleden is dat dit defect oorspronkelijk werd gemeld, wordt het misschien helemaal niet verholpen...
Het spijt me dat dit geen volledige oplossing voor het probleem is, maar het is in ieder geval een stap vooruit.