Оповещение пользователя, если он нажал стрелку назад - PullRequest
0 голосов
/ 13 июня 2011

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

Я бы хотел предупредить пользователя: «Вы действительно хотите выйти?»так что, если это было случайно, они могут выбрать «нет» и продолжить и не потерять какие-либо данные.

Я предполагаю, что мне нужно будет реализовать какой-то тип слушателя ??

Ответы [ 5 ]

1 голос
/ 13 июня 2011

Если пользователь уже на полпути к использованию приложения и нажал стрелку назад, сейчас оно просто закрывается и потеряет все данные, если случайно нажмет его.

Тогда не потеряйте данные. Сохраните его в onPause(), если не в постоянном хранилище данных, во временное место, которое вы затем проверьте позже.

Я бы хотел предупредить пользователя: «Вы действительно хотите выйти?» так что если это было случайно, они могут выбрать «нет» и продолжить и не потерять никакие данные.

Пожалуйста, не надо.

Это касается только одного варианта использования: пользователь нажимает кнопку НАЗАД. Полностью игнорируется:

  • пользователь нажимает кнопку HOME
  • пользователь получает телефонный звонок
  • пользователь, отвечающий на Notification
  • пользователь долго нажимает на HOME (или нажимает кнопку недавних задач в Honeycomb) и переключается на другую задачу
  • и т.д.

Если потеря данных является проблемой для вас, когда они нажимают НАЗАД, это проблема для вас и во всех этих других случаях. Следовательно, обрабатывайте все случаи, не прерывая пользователя, когда он пытается уйти, а удерживая данные, а затем подсказывая им данные в полете, если и когда они решат вернуться.

1 голос
/ 13 июня 2011

Переопределить onbackpressed () что-то вроде ...

    @Override
    public void onBackPressed() {
        AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
        builder.setMessage("Do you really want to exit?.").setCancelable(
                false).setPositiveButton("Quit",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                                            YourActivity.this.finish();

                    }
                }).setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                    }
                });
        AlertDialog alert = builder.create();
        alert.show();

    }
0 голосов
/ 13 июня 2011

Вы должны переопределить onBackPressed () метод деятельности и предоставить логику там.

0 голосов
/ 13 июня 2011

Существует множество других тем. В основном, переопределить onBackPressed()

0 голосов
/ 13 июня 2011

Просто переопределить onBackPressed(). Одно предостережение: это начиная с API 5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...