19. April 2013

Android: Erkennen wenn App zum ersten Mal gestartet wird

Manchmal kann es bei der Entwicklung einer Android-App hilfreich sein, erkennen zu können wenn diese nach ihrer Installation zum ersten Mal gestartet wird. Diese Erkennung kann man dann beispielsweise nutzen um die Datenbank mit standardmäßigen Einträgen zu füllen oder dem User hilfreiche Tipps einzublenden. Im Folgenden soll kurz aufgezeigt werden, wie so etwas erreicht werden kann.

Die Erkennung sollte in der Activity stattfinden, die beim Starten der App als Erste angezeigt wird. Für die Umsetzung genügt folgender Code:
 public class StartActivity extends Activity {  
   
   SharedPreferences sharedPreferences;  
   
   @Override  
   public void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     sharedPreferences = getSharedPreferences("preferenceName", MODE_PRIVATE);  
   }  
   
   @Override  
   public void onResume() {  
     super.onResume();  
   
     if (sharedPreferences.getBoolean("firstrun", true)) {  
       sharedPreferences.edit().putBoolean("firstrun", false).commit();  
       // Hier Code einfügen der beim ersten Start einmalig ausgeführt werden soll  
     }  
   }  
   
 }  
Der Code basiert auf der Verwendung von SharedPreferences, die es erlauben, primitive Datentypen zu speichern und zu erhalten, selbst wenn die App beendet wird. In der onCreate-Methode wird zunächst eine solche SharedPreferences-Instanz über einen Namen instanziiert. In der onResume-Methode, die dem Activity-Lifecycle nach erst nach der onCreate-Methode aufgerufen wird, wird versucht einen boolschen Wert mit dem Key "firstrun" aus den SharedPreferences zu laden. Für den Fall, dass dies nicht gelingt, also genau dann, wenn die App zum ersten Mal gestartet wird, wird der Default-Wert "true" angegeben. In diesem Fall wird der Code innerhalb der if-Bedingung ausgeführt, wo nun der Boolean-Wert mit dem Key "firstrun" auf "false" gesetzt werden muss, so dass bei den folgenden Durchläufen die if-Bedingung nie wieder erfüllt wird. Außerdem kann an dieser Stelle derjenige Code eingefügt werden, der beim ersten Start der App ausgeführt werden soll.

Keine Kommentare:

Kommentar veröffentlichen