Вызвать alertDialog onStop / onPause - PullRequest
2 голосов
/ 19 июля 2011
@Override
protected void onStop() {
    super.onStop();

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Test message")
           .setCancelable(true)
           .setPositiveButton("OK", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   dialog.cancel();
               }
           });
    AlertDialog alert = builder.create();
    alert.show();
}

Очевидно, что это не работает, как только появляется диалоговое окно - действие прекращается (диалоговое окно исчезает).Как решить эту проблему?

Я хочу сохранить некоторые настройки в своей базе данных, как только активность будет оставлена ​​(с помощью кнопки «Назад», нажатия на какую-либо кнопку, которая приводит к какой-либо другой активности, нажатия на уведомление и так далее..) и затем показать результат в AlertDialog?

Или даже лучше - когда Android распознает, что действие будет закрыто, он сохраняет мои настройки, показывает AlertDialog, а затем onClick Activity окончательно закрывается.

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Вы должны вызвать super.onStop () после завершения обработки.

1 голос
/ 19 июля 2011

Это очень плохая практика - пытаться делать что-то, что требует времени и внимания пользователя в onStop и onPause.Обычно эти методы используются для сохранения некоторых данных.Вы можете попытаться показать Toast, но лучший способ - это ничего не показать, так как это не обычная практика.Есть ли что-то важное, что вам нужно показать?Это вопрос, который вы должны решить в первую очередь.

0 голосов
/ 19 июля 2011

Я полагаю, вам нужно отправить настройки, когда пользователь выходит из приложения или приложение вызывает onPause ().Почему бы вам не попытаться понять все способы выхода из приложения, скажем, нажата кнопка «Назад», поэтому добавьте прослушиватель для всех этих событий.И сделать отправку.

...