Приложение «Принудительное закрытие» заставляет мой показ alertDialog

У меня есть еще одна проблема, с которой я столкнулся с моим alertDialog, когда я принудительно закрываю свое приложение на эмуляторе или на устройстве, и когда я захожу в приложения на этом устройстве или эмуляторе, чтобы снова запустить свое приложение, мой alertDialog показывает. Недавно у меня была аналогичная проблема по этой ссылке Shared Prefence for alert dialog делает мое приложение не отвечающим, и я думал, что все мои проблемы были решены раз и навсегда. Так может кто-нибудь, пожалуйста, помогите мне с этой проблемой.

    final SharedPreferences settings = getSharedPreferences("pref_name", 0);
    ("installed", false);

        final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);

        alertDialog.setTitle("Title");
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.setAdapter(new MyAdapter(), null);

        alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                SharedPreferences.Editor editor = settings.edit();
                editor.putBoolean("installed", true);
                editor.commit();

            }
        });

        alertDialog.show();

Пожалуйста, дайте мне знать, если вам нужно, чтобы я уточнил больше


person Inman Douche    schedule 26.09.2013    source источник
comment
Где этот код? Это определенно может показать AlertDialog. Уточните, почему это не должно отображаться. Из вашего другого вопроса похоже, что он покажет, является ли installed false. Не должно ли это быть false на данный момент, и если да, то почему?   -  person codeMagic    schedule 27.09.2013
comment
Возьмите журналы аварии. Трассировка стека Exception - это ключ, чтобы узнать это.   -  person Alécio Carvalho    schedule 27.09.2013
comment
@Alécio мое приложение не обналичивается, я просто хочу знать, как я могу предотвратить отображение моего диалога после того, как пользователь принудительно закрывает приложение на устройстве   -  person Inman Douche    schedule 27.09.2013
comment
@ Алесио, как мне этого добиться?   -  person Inman Douche    schedule 28.09.2013
comment
Когда ваше приложение закрыто и когда вы снова запускаете приложение и снова видите диалоговое окно, это, вероятно, потому, что вы помещаете код для отображения диалогового окна при запуске действия. Чего вы действительно хотите? Разработайте лучше, вы хотите показать диалог только один раз? или всегда? или когда?   -  person Alécio Carvalho    schedule 29.09.2013
comment
@ Alécio да, я хочу, чтобы мой диалог отображался один раз и только один раз   -  person Inman Douche    schedule 29.09.2013


Ответы (1)


final SharedPreferences settings = getSharedPreferences("pref_name", 0);
boolean dialogAlreadyShown = settings.getBoolean("installed", false);

if (dialogAlreadyShown == false) {
   showTheDialogYouWannaShow();
   settings.edit().putBoolean("installed", true).commit();
}

таким образом, в следующий раз, когда этот код запустится, диалоговое окно не будет отображаться... вы также можете сохранить настройку в onClick диалогового окна, но тогда, если пользователь не нажмет кнопку в диалоговом окне, диалоговое окно будет отображается потенциально несколько раз, пока пользователь не нажмет кнопку, что также может быть в порядке, в зависимости от ваших требований.

Примечание: в showTheDialogYouWannaShow() я предполагаю, что вы помещаете код для создания диалогового окна предупреждения, уже представленного в вопросе.

person Alécio Carvalho    schedule 29.09.2013
comment
Когда я пытаюсь это сделать, я получаю тот же результат, что и мое приложение, которое не отвечает ни на что после первого запуска приложения. Та же проблема, что и в моем старом вопросе, который находится в ссылке. - person Inman Douche; 30.09.2013