2014-09-28 6 views
1

Я хочу добавить оповещение для запуска для своего приложения, но оно постоянно появляется при каждом возвращении на главный экран. Как я могу это сделать? Новичок здесь и спасибо в связи.Показывать предупреждение только один раз для запуска приложения на android

AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
     alertDialog.setMessage("About:"); 
     String alert1 = "Message here " ; 
     String alert2 = "Message here " ; 
     String alert3 = "Message here " ; 
     alertDialog.setMessage(alert1 +"\n"+ alert2 +"\n"+ alert3); 
     AlertDialog alert = alertDialog.create(); 
     alert.show(); 
+0

Где этот код называется, onResume()? – Kai

+0

установить логическую переменную –

+0

Это пишет сильфон общественного класс Main_Screen расширяет активность { общественного недействительный OnCreate (Bundle savedInstanceState) { ЗДЕСЬ – hhayf

ответ

2

Создать логическую переменную (первоначально установлен в True), чтобы сказать вам, если это первый запуск или нет, и хранить его в Preferences.

private boolean isFirstRun = true; 
private SharedPreferences prefs; 

Внутри на создание(), прочитать это значение из Preferences в случае, если оно существует. Значение по умолчанию верно.

prefs = PreferenceManager.getDefaultSharedPreferences(this); 
isFirstRun = prefs.getBoolean("isFirstRun", true); 

только показать свое Dialog если значение переменной верно. После того, как вы указали свой Dialog, установите для этой переменной значение false и сохраните ее в Preferences.

if(isFirstRun){ 
     AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
     alertDialog.setMessage("About:"); 
     String alert1 = "Message here " ; 
     String alert2 = "Message here " ; 
     String alert3 = "Message here " ; 
     alertDialog.setMessage(alert1 +"\n"+ alert2 +"\n"+ alert3); 
     AlertDialog alert = alertDialog.create(); 
     alert.show(); 
} 

isFirstRun = false; 

prefs.edit().putBoolean("isFirstRun", isFirstRun).commit(); 

В следующий раз вы запускаете свой код, переменная всегда будет ложным, и поэтому Dialog не покажет.

Edit:

Внутри onStop(), сделайте следующее:

if(alert!=null && alert.isShowing()) 
    alert.dismiss(); 

Это уволит диалог при выходе из активности на другой. Как только вы нажмете кнопку «Назад», Dialog не будет отображаться снова.

+0

Спасибо за response.This один работает, но он предотвращает предупреждение от запуска на новом приложении I launch.Also должен был заменить "(контекст)" на "(getBaseContext())" из-за ошибки. – hhayf

+0

Моя ошибка. Я отредактировал код, так что это – joao2fast4u

+0

Я думаю, что неправильно понял ваш вопрос. Если вы хотите, чтобы он показывался в каждом приложении, забудьте часть «Настройки». См. Мой отредактированный ответ. – joao2fast4u

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