android für - So deaktivieren Sie die Schaltfläche Daten löschen in den Anwendungsinformationen der Anwendung verwalten



clean xender (4)

Ich arbeite an Android 2.2, in einer Anwendung Registerkarte Android Manifest bieten die Option "Erlaube klare Daten", um wahr oder falsch zu setzen. Aber nachdem ich es auf False gesetzt habe, kann meine Anwendung die Schaltfläche Daten löschen in den Anwendungsinformationen der Anwendung verwalten nicht mehr deaktivieren. Ich stehe vor diesem Problem, wenn die Anwendung eine Datenbank in Daten / Daten / Paketname / Datenbanken / enthält.

Ich muss meine Anwendungsdatenbank vor dem Benutzer schützen.


Answers

AndroidManifest.xml

<application
    android:manageSpaceActivity="[packageName].ManageSpaceActivity"
    ...
    ...
>


  <activity
    android:name="[packageName].ManageSpaceActivity"
    android:screenOrientation="portrait" />

Es wird meine Aktivität anrufen, aber:

public class ManageSpaceActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        finish();

    }// onCreate
}

und die Aktivität ist tot bei der Erstellung, ich liebe Tricks :)

Jetzt können Sie den "Raum verwalten" beliebig oft drücken! :)) - Wenn Sie ManageSpaceActivity , können Sie benutzerdefinierte Daten / Cache löschen bei ManageSpaceActivity , aber Sie können Ihre Daten behalten, die Sie wollen.

Up-Stimmen zu Jakar antworten zu pls!


Fügen Sie android:manageSpaceActivity=".ActivityOfMyChoice" zum application Tag Ihres Manifests hinzu:

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

Dann gibt es anstelle von "Clear Data" "Manage Space" eine Schaltfläche für "Manage Space" die ActivityOfMyChoice startet

Soweit ich das beurteilen konnte, funktioniert das zu 100%.


Es gibt keine Möglichkeit zu verhindern, dass der Nutzer Ihre App-Daten löscht. Die von Ihnen erwähnte Manifest-Option ist nur für System-Apps gedacht und Sie als Entwickler haben keine Möglichkeit, System-Apps zu installieren.

Bitte lesen Sie diese Diskussion für Details - insbesondere this Antwort von Diane Hackborn (Android Framework Engineer)


Eine Option besteht darin, dass der OnCreate-Status jeder Aktivität den angemeldeten Status überprüft und finish (), wenn sie nicht angemeldet ist. Ich mag diese Option nicht, da die Zurück-Schaltfläche immer noch verfügbar ist und zurück navigiert, wenn sich Aktivitäten schließen.

Was Sie tun möchten, ist logout () und finish () für Ihre onStop () - oder onPause () -Methoden aufzurufen. Dadurch wird Android gezwungen, onCreate () aufzurufen, wenn die Aktivität wieder aktiviert wird, da sie nicht mehr im Stapel der Aktivität enthalten ist. Dann tun Sie, wie Sie sagen, in onCreate () überprüft angemeldeten Status und Weiterleiten an den Anmeldebildschirm, wenn nicht angemeldet.

Sie können auch den angemeldeten Status in onResume () überprüfen und, wenn Sie nicht angemeldet sind, finish () und die Anmeldeaktivität starten.





android sqlite