Ich würde empfehlen, dass Sie die SharedPreferences verwenden dafür:
Die Grundidee ist, dass Sie die SharedPreferences und suchen einen boolean Wert lesen, die auf den ersten App Start nicht existieren. Nach Standard werden Sie "true" zurückgeben, wenn der Wert, nach dem Sie gesucht haben, nicht gefunden werden konnte. Dies weist darauf hin, dass es sich tatsächlich um den ersten App-Start handelt. Dann speichern Sie nach dem ersten Start der App den Wert "false" in Ihren SharedPreferences, und beim nächsten Start wird der Wert "false" aus den SharedPreferences gelesen, was darauf hinweist, dass es nicht mehr der erste App-Start ist. Hier
ist ein Beispiel dafür, wie es aussehen könnte:
@Override
protected void onCreate(Bundle savedInstanceState) {
// your other code...
// setContentView(...) initialize drawer and stuff like that...
// use thread for performance
Thread t = new Thread(new Runnable() {
@Override
public void run() {
SharedPreferences sp = Context.getSharedPreferences("yoursharedprefs", 0);
boolean isFirstStart = sp.getBoolean("key", true);
// we will not get a value at first start, so true will be returned
// if it was the first app start
if(isFirstStart) {
mDrawerLayout.openDrawer(mDrawerList);
Editor e = sp.edit();
// we save the value "false", indicating that it is no longer the first appstart
e.putBoolean("key", false);
e.commit();
}
}
});
t.start();
}