2016-08-20 3 views
0

Ich bin gerade dabei, eine App zu erstellen, und ich ändere häufig die Datenbank oder den Code, der damit interagiert. Aus diesem Grund möchte ich immer meine Testläufe (nicht automatisiert - einfach nur alte manuelle Tests auf einem Emulator) mit einer sauberen Datenbank durchführen.Android - Wie bereinigt man die Datenbank bei jedem Build?

Derzeit erreiche ich dies, indem ich sicherstelle, dass ich die App vor einem weiteren Testlauf gelöscht habe. Das funktioniert aber ist mühsam. Ich habe mich gefragt, ob es eine Möglichkeit gibt, dies zu automatisieren, so dass jedes Mal, wenn ich die App erstelle, auch die Datenbank bereinigt wird. Im Idealfall sollte es einfach sein, dies ein-/auszuschalten, weil ich in einigen Fällen die alten Daten in der Datenbank behalten möchte.

Antwort

0

Sie können eine BroadcastReceiver hinzufügen, die die Datenbank löscht, wenn Ihre App aktualisiert wird. Beginnen Sie, indem es auf die AndroidManifest.xml Zugabe:

<receiver android:name=".AppUpdateReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> 
    </intent-filter> 
</receiver> 

dann eine Klasse erstellen AppUpdateReceiver genannt:

public class AppUpdateReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    if (BuildConfig.DEBUG) { 
     // Wipe database 
    } 
    } 
} 

, dass die Datenbank jedes Mal, wenn Anwendung wischen sollte mit einem Debug-APK aktualisiert.

0

Wenn Sie Android Studio verwenden (oder in einer anderen IDE mit Gradle bauen), würde es vielleicht funktionieren, wenn Sie die clea-Datenbank jedes Mal mit einer Graplestask in Ihren Emulator kopieren würden? Etwas wie unten.

task pushCleanSb(type: Exec, dependsOn: 'installDebug') { 
    android.adbExe, 'shell', 'push', '<local-clean-database-filepath>, '<remote--database-path' 
} 

Es wäre einfach, einen Schalter hinzuzufügen, um dies bei Bedarf auszuschalten, z. indem Sie einen Booleschen Wert verwenden, der in Ihrem Noten-Skript definiert ist. Sie können auch rm Shell-Befehle verwenden, um temporäre Dateien zu löschen, wenn Ihre App solche erstellt und auf dem Gerät belassen hat.

Verwandte Themen