2016-03-25 2 views
2

У меня есть часть кода, которую я хочу запустить только в первый раз, когда вызывается конкретный метод OnCreate() (за каждый сеанс приложения), а не каждый раз, когда создается действие. Есть ли способ сделать это в Android?Код запуска только для первого OnCreate

ответ

2

использование sharedpreference ... установить значение истину в предпочтении в первый раз ... при каждой проверке выполнения, если значение установлено в истинный ... и на основе codition выполнение кода

Для Ex.

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(); 
} 
+0

Но тогда вы должны установить его в false в какой-то момент, или это будет верно при каждом перезагрузке приложения, тоже –

+0

, но, как вы уже упоминали в своем сообщении ... вы просто хотите запустить его один раз .. . –

+0

За сеанс приложения –

2

использование статической переменной внутри вашей активности, как показано ниже

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; 
    } 
} 
11

protected void onCreate(Bundle savedInstanceState) имеет все, что вам нужно.

Если savedInstanceState == null, то это первый раз.

Следовательно, вам не нужно вводить дополнительные статические переменные.

+0

Пробовал это и по какой-то причине savedInstanceState всегда null, поэтому, надеюсь, один код всегда срабатывает –

Смежные вопросы