2010-06-09 6 views
14

OK, also spiele ich mit einer Android-App herum.Kann ich eine Android-Aktivität nur beim ersten Öffnen einer Anwendung ausführen lassen?

Der 90% -Anwendungsfall besteht darin, dass Benutzer direkt zum Bildschirm der Primärliste gehen möchten, um zu finden, wonach sie suchen. Das ist, was ich als Standardbildschirm möchte.

Wenn ein Benutzer das erste Mal die App lädt, sind einige Konfigurationen erforderlich, bevor der Listenbildschirm für sie einen Wert hat.

Also meine Frage, ist, wie ich gehen kann über die Anzeige der Konfigurationsaktivität beim ersten Mal die App geöffnet wird, und dann die Liste Bildschirm für zukünftige Öffnungen.

Ich möchte auch eine Demo-Schaltfläche auf dem Konfigurationsbildschirm setzen, also nehme ich mehr als nur feststellen, dass es das erste Mal ist, möchte ich speziell erkennen, ob der Benutzer bestimmte Konfigurationen innerhalb des ersten Bildschirms durchgeführt hat.

Antwort

4

ich mag dweebsonduty's Methode. Eine ähnliche Möglichkeit besteht darin, ihre Konfigurationsinformationen in Dateien auf der SD-Karte zu speichern. Ihre App könnte damit beginnen, nach diesen Dateien zu suchen und die Informationen zu laden. Wenn der Ladevorgang erfolgreich ist, wird mit der nächsten Aktivität fortgefahren, andernfalls wird die entsprechende Aktivität gestartet, um den Benutzer zur Eingabe aufzufordern.

Ich habe die gleiche Sache gemacht, aber anstatt die Aktivitäten zu wechseln, wechsle ich einfach die Ansichten, bis ich alle Informationen habe, die ich brauche, und gehe dann weiter.

0

Wie speichern Sie die Konfiguration?

Wenn es in SQLlite ist, könnten Sie einfach eine Tabelle mit dem Namen firstuse erstellen und ein Feld namens hasbeenused dort platzieren und es zu null machen. Dann, wenn die App verwendet wird, können Sie eine 1 in dort setzen. Dann können Sie es jedes Mal lesen, wenn Ihre App geladen wird und wenn dieses Feld = 1 ist, dann gehen Sie zu Ihrer nächsten Aktivität.

+2

Vielleicht braucht er nicht einmal das zusätzliche Feld; er könnte einfach nachsehen, ob die erforderlichen Konfigurationsinformationen da sind und wenn nicht, die Aktivität hochkochen. Das scheint sowieso erweiterbar. – tloflin

+1

Ich habe versucht Einstellung es mit gemeinsamen Vorlieben auf, aber das verursacht schlechtes Verhalten der zurück-Taste. ich irgendwie sah den Stapel zu manipulieren, aber es scheint nur, dass für Tätigkeiten des gleichen Typs tun will –

17

Nachdem der Benutzer die App zum ersten Mal geladen hat, können Sie die Details darüber speichern, ob der Benutzer die Konfigurationen in SharedPreferences durchgeführt hat.

protected void storeSharedPrefs(String value) { 
     /* 
     * Storing in Shared Preferences 
     */ 
     editor.putString("first", value); 
     editor.commit(); //Commiting changes 
    } 

prüfen jeweils auf Zeitanwendung geladen ist, ob es das erste Mal, und Konfigurationsdetails korrekt durch Prüfen SharedPreferences

private boolean first_time_check() { 
     /* 
     * Checking Shared Preferences if the user had pressed 
     * the remember me button last time he logged in 
     * */ 
     String first = uPreferences.getString("first", null); 
     if((first == null)){ 
      return false; 
     } 
     else 
      return true; 
    } 
+4

Noch besser als getString zu vergleichen () to null ist zu verwenden contains(). – Plutor

+7

Noch besser mit einem Boolean anstelle eines Strings. 'editor.putBoolean (PREF_FIRST_LAUNCH, false);' und der First_time_check enthält nur 'return PreferenceManager.getDefaultSharedPreferences (getApplicationContext()) \t \t .getBoolean (PREF_FIRST_LAUNCH, true); ' – Sylphe

+0

benutzte ich diese Methode. Aber ich habe Probleme mit dem Zurück-Button. Wenn die App mit der Zurück-Schaltfläche beendet wird, nimmt sie beim nächsten Start an, dass es NICHT ihre erste Ausführung ist. Was man für eine Android-App nicht will, ist, dass der Programmierer nicht alles auf seinen Anfangswert für den App-Start setzen kann. Was soll ich machen? – Tina

2

Viele Anwendungen speichern tatsächlich die aktuelle Version in SharedPreferences eingegeben wurden, und prüfen Sie gegen es für wenn ein Update installiert wurde. Es ist ein cleverer Weg, um ein "Was ist geändert" -Popup zu erreichen, oder sicherzustellen, dass einige Einstellungen gesetzt werden (Ich würde vorsichtig sein, nur eine boolesche Flagge zu haben, denn wenn Sie eine zusätzliche Einstellung hinzufügen möchten, benötigen Sie eine zweite Flagge und es wird unordentlich nach dem dritten usw.).

1

Zeichenfolge VersionValue = "v.1.0"; final Zeichenfolge PREFS_NAME = "MyPrefsFile";

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 

    if (settings.getBoolean(VersionValue, true)) { 
     //the app is being launched for first time, do something   
     NewDialogFragment newFragment = new NewDialogFragment(); 
     newFragment.show(getFragmentManager(), "New"); 
     // record the fact that the app has been started at least once 
     settings.edit().putBoolean(VersionValue, false).commit(); 
    } 

Man könnte es auf diese Weise tun und immer noch das gleiche Ergebnis habe ich versucht, es seine eine kleine Abhilfe, wenn u nicht vollständig verstehen, wie zu überprüfen, ob die App aktualisiert wird. Anstatt mit diesem Code können Sie einfach String VersoinValue in Ihre aktuelle App-Version ändern und Android wird die App als eine neue Erst-App betrachten und wird nur den Code anzeigen, den Sie einmal geschrieben haben, bis Sie VersionValue bei Ihrem nächsten Update ändern.(:

+0

Noch besser! Sie könnten eine Zeichenfolge in Ihrer string.XML-Datei erstellen und diese sowohl auf Ihre Versionsnummer als auch auf Ihren VersionValue in Ihrer Hauptdatei activity.java verweisen. [Achten Sie darauf, auch den Code über den Wert der Version und Zeug in der OnCreate Meathod] –

Verwandte Themen