2013-03-04 2 views
8

Ich verwende database, um einige data zu speichern. Aber wenn Benutzer zu Apps Setting s gehen und die Taste 'clear data' in den App-Einstellungen drücken, werden Daten in Datenbanken gelöscht, wie dies vermieden werden kann. Kann ich 'clear data' BUTTON für meine App in Apps Einstellungen als nicht aktiviert oder andere Vorschläge ....Vermeiden Sie das Löschen der Daten aus der Datenbank beim Klicken auf "Daten löschen" -Taste in den App-Einstellungen auf Android-Gerät

+0

Sie können diese http://stackoverflow.com/questions/6531173/how-to-disable-the-clear-data-button-in-application-info-of-manage-appliction sehen – MRX

+0

Antwort hier - http://stackoverflow.com/questions/6531173/how-to-disable-the-clear-data-button-in-application-info-of-manage-appliaction –

Antwort

1

Schließlich fand ich eine Lösung, wenn Sie Anwendungssystemadministrator machen dann möglich, seine Daten nicht zu löschen und deinstallieren app

+1

Wie man Anwendung Systemadministrator machen? Was soll die Einstellung programmatisch machen? – Piraba

3

Es gibt keine direkte Möglichkeit zu vermeiden, dass App-Daten von dem, was ich weiß, gelöscht werden.

Sie könnten jedoch Ihre Daten auf dem externen Speicher (SD-Karte) in einer Datei speichern und bei jedem Start der App prüfen, ob diese Datei vorhanden ist und ihren Inhalt in die Datenbank einfügen. Dies wird natürlich nicht funktionieren, wenn der Benutzer manuell Ihre Backup-Datei von der SD löscht, eine andere SD einlegt, die SD entfernt oder das Gerät als eingehängtes Laufwerk mit dem Computer verbindet und dann die App startet.

3

Android fragt nicht, ob Ihre App gelöscht werden soll oder nicht. Es ist eine Systemfunktionalität, die dem Benutzer zur Verfügung gestellt wird. Der Benutzer kann die App vollständig deinstallieren.

So erstellen/öffnen Sie die Datenbankdatei an einem anderen Speicherort.

Daten Haltbarkeit:

  1. App Cache dir: gelöscht, wenn der interne Speicher ist gering.
  2. App-Datenverzeichnis: Wird gelöscht, wenn der Benutzer App-Daten löscht, wird die App deinstalliert.
  3. Externer Speicher: Benutzer kann jederzeit löschen, Benutzer kann auch den Speicher entfernen.
  4. Backup-Manager: Neue Versionen von Android bieten Apps zum Backup von Daten in der Cloud über BackupManager.
  5. Remoteserver: Bleibt im Server, bis er gelöscht wird.
3

hinzufügen android:manageSpaceActivity=".ActivityOfMyChoice" der Anwendung Tag Ihrer Manifest wie:

<application android:label="MyApp" android:icon="@drawable/icon" android:manageSpaceActivity=".ActivityOfMyChoice" >

Dann anstelle von "Daten löschen", gibt es eine Taste für "Manage Space", die ActivityOfMyChoice startet

ActivityOfMyChoice.java

public class ActivityOfMyChoice extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    finish(); 
} 

Wenn Sie also auf die Aktivität Mange klicken, wird die Aktivität beendet.

1

Ich denke, gibt es einen Weg haben, aber es noch nicht versucht. Sie können Ihre DB-Datei im Asset-Ordner speichern, überprüfen Sie, ob es verfügbar ist, ansonsten tun Sie einfach https://stackoverflow.com/a/9109728/265167 (achten Sie auf DataBaseHelper-Klasse). Aber auf diese Weise verlieren Sie alle "Update-Daten".

Verwandte Themen