У меня есть Activity, который показывает приветственное сообщение, если оно запущено в первый раз:
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    showWelcomeMessageIfNecessary();
}
private void showWelcomeMessageIfNecessary() {
    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    final Editor edit = prefs.edit();
    if (!prefs.getBoolean("welcomemessage", false)) {
        edit.putBoolean("welcomemessage", true);
        edit.commit();
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(R.string.messages_welcome_content).setCancelable(false).setPositiveButton(R.string.errors_ok, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // Do nothing
            }
        }).setTitle(R.string.messages_welcome_title);
        AlertDialog alert = builder.create();
        alert.show();
    }
}
Все это прекрасно работает, однако, когда я запускаю приложение и сразу же поворачиваю экран, я получаю известное исключенное исключение окна.
Как я могу это предотвратить? Есть ли лучший способ показать диалоги? Это также происходит, когда я использую ProgressDialog в AsyncTask в Fragment s.