Да, диалоговое окно можно запустить только тогда, когда основное действие запускается в первый раз, но я сохраняю состояние при мягком уничтожении.Таким образом, если вы сохраняете состояние в onSaveInstanceState для мягкого уничтожения, вы можете искать нулевой пакет в onCreate.Если пакет является нулевым, то это первый запуск.Если комплект не ноль, то вы возвращаетесь из мягкого уничтожения.Если вы сохраняете состояние в onRetainNonConfigurationState, то код выглядит так:
// RESTORE STATE HERE
// Save state in onStop (prefs) and onRetainNonConfigurationInstance (ConfuseTextState)
state= (ConfuseTextState)getLastNonConfigurationInstance();
if (state != null) { // at least second pass, get non view state from onRetainNonConfigurationInstance
try {
this.isShowCharCount= state.isShowCharCount;
this.timeExpire= state.timeExpire;
this.timeoutType= state.timeoutType;
this.isValidKey= state.isValidKey;
this.password= state.password;
this.isAutoLaunch= state.isAutoLaunch;
//Log.d(TAG,"restoredStateFromLastConfiguration");
}
catch(Exception e){
Log.d(Utilities.TAG,"FailedToRestoreState",e);
}
}
else { // first pass, get saved state from preferences on first pass if they exist
// Restore preferences (8) on hard kill when USER hit back and killed us
SharedPreferences prefs = getPreferences(MODE_PRIVATE); // singleton
if (prefs != null){...
} // else state is from xml files and default instance values
// SUPPORT EASY LAUNCH
if (isAutoLaunch){ // launch on first show only
this.showDialog(DIALOG_EASY_LAUNCH); //<== SHOW YOUR ALERT HERE!
}
}