Ich habe einen Codeabschnitt, den ich nur beim ersten Aufruf einer bestimmten OnCreate() -Methode (pro App-Sitzung) ausführen möchte, und nicht bei jeder Erstellung der Aktivität. Gibt es eine Möglichkeit, dies in Android zu tun?Code zuerst ausführen OnCreate only
Antwort
static
Variable verwenden.
static boolean checkFirstTime;
Verwendung sharedpreference ... Sollwert auf true in Präferenz zum ersten Mal ... bei jedem Durchlauf prüfen, ob Wert auf true gesetzt ... und basierend auf codition Code
Für Ex auszuführen.
SharedPreferences preferences = getSharedPreferences("MyPrefrence", MODE_PRIVATE);
if (!preferences.getBoolean("isFirstTime", false)) {
//your code goes here
final SharedPreferences pref = getSharedPreferences("MyPrefrence", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("isFirstTime", true);
editor.commit();
}
Verwendung statische Variable in Ihrer Aktivität, wie unten
private static boolean DpisrunOnce=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_run_once);
if (DpisrunOnce){
Toast.makeText(getApplicationContext(), "already runned", Toast.LENGTH_LONG).show();
//is already run not run again
}else{
//not run do yor work here
Toast.makeText(getApplicationContext(), "not runned", Toast.LENGTH_LONG).show();
DpisrunOnce =true;
}
}
gezeigt
protected void onCreate(Bundle savedInstanceState)
hat alles, was Sie brauchen.
Wenn savedInstanceState == null
dann ist es das erste Mal.
Daher müssen Sie keine extra-statischen Variablen einführen.
Versucht dies und aus irgendeinem Grund savedInstanceState ist immer Null so hoffnungsvoll -time-Code löst immer aus –
Aber dann müssen Sie es irgendwann wieder auf false setzen oder es wird mit jedem App-Neustart auch zu wahr –
aber wie Sie in Ihrem Beitrag erwähnt haben ... Sie wollen es nur einmal ausführen .. –
Pro App Sitzung –