Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 147
#1

Как красиво закрывать приложение? - Программирование Android

01.11.2015, 18:02. Просмотров 255. Ответов 6
Метки нет (Все метки)

Здравствуйте!
Столкнулся с проблемой: если я закрываю своё приложение при помощи диалогового окна, то выглядит это очень некрасиво. Это связано с тем, что при нажатии кнопки "Да" в диалоговом окне, оно не пропадает, а как-то некрасиво блекнет, а потом просто закрывается все активити приложения вместе с окном. Не пойму, как сделать, чтоб сначала пропадало диалоговое окно, а затем закрывалось активити?
Спасибо!

Добавлено через 21 минуту
Я нашёл выход
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 public void onBackPressed() {
        if (!isEntered) {
            super.onBackPressed();
        } else {
            dialog = new AlertDialog.Builder(this)
                    .setNegativeButton(R.string.no, null)
                    .setTitle(R.string.exitFromProg)
                    .setMessage(R.string.areYouShure)
                    .setPositiveButton(R.string.yes,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                                    int which) {
                                    Thread my = new Thread(new Runnable() {
                                        @Override
                                        public void run() {
                                            h.sendEmptyMessage(1);
                                        }
                                    });
                                    my.start();
                                    Thread my1 = new Thread(new Runnable() {
                                        @Override
                                        public void run() {
                                            try {
                                                Thread.sleep(100);
                                            } catch (InterruptedException e) {
                                                e.printStackTrace();
                                            }
                                            db.close();
                                            isEntered = false;
                                            Start.super.onBackPressed();
                                        }
                                    });
                                    my1.start();
                                }
                            }).create();
В обработке Handler:
Java
1
2
3
4
5
6
7
h = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                Log.d(LOG_TAG, "inside handler");
                dialog.dismiss();
            }
        };
Однако, чувствую, что это костыль.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2015, 18:02     Как красиво закрывать приложение?
Посмотрите здесь:

Как закрывать приложение? - Программирование Android
Заранее извеняюсь за глупый вопрос, но чет не могу найти ответа, или не так задаю вопрос гуглу)) как закрыть приложение? какой метод...

Как красиво разместить на экране 16 кнопок (4x4)? - Программирование Android
мне надо разместить на экране 16 кнопок(4х4 размещение, кнопки квадратные, одинакового размера, с рисунками). подскажите новичку, как...

Как открывать/закрывать NavigationDrawer кнопкой "Menu" - Программирование Android
собсно и вопрос в этом, где и что повесить на хардварную кнопку меню чтоб вызывался NavigationDrawer?

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

Как привязать приложение к ВК? - Программирование Android
Помогите пожалуйста,мне нужно что-бы приложение делало пост автоматически. Скиньте весь код если не трудно.

Как запустить приложение? - Программирование Android
Здравствуйте, помогите разобраться пожалуйста, я скачала JDK, Eclipse, и создала первое приложение, Hello, но не понимаю как же мне...

Как защитить приложение - Программирование Android
Доброго времени суток! Пишу диплом тесно связанный с безопасностью. Функциональную часть моего андроид приложения я уже реализовал и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.11.2015, 18:47     Как красиво закрывать приложение? #2
Ханасака, Задайте диалогу setDismissListener. Когда будет вызвано событие закрытия, сделайте finish внутри Handler#postDelayed с интервалом, например, 200 мс
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 147
01.11.2015, 19:07  [ТС]     Как красиво закрывать приложение? #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
Когда будет вызвано событие закрытия
Простите за непонятливость, но как узнать когда это?
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 147
03.11.2015, 19:23  [ТС]     Как красиво закрывать приложение? #4
Цитата Сообщение от YuraAAA Посмотреть сообщение
Задайте диалогу setDismissListener. Когда будет вызвано событие закрытия, сделайте finish внутри Handler#postDelayed
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
 dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                @Override
                public void onDismiss(DialogInterface dialog) {
                    h.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            db.close();
                            isEntered = false;
                            finish();
                        }
                    },2000);
                }
            });
Закрывает красиво, но также закрывает по нажатию кнопки "нет/отмена", ведь срабатывает onDismiss
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.11.2015, 19:36     Как красиво закрывать приложение? #5
Ханасака, ставить listener в нажатии на ок
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 147
04.11.2015, 13:09  [ТС]     Как красиво закрывать приложение? #6
Цитата Сообщение от YuraAAA Посмотреть сообщение
Ханасака, ставить listener в нажатии на ок
Java
1
2
3
4
5
6
7
8
9
setPositiveButton(R.string.yes,
              new DialogInterface.OnClickListener() {
                   @Override
                       public void onClick(DialogInterface dialog,
                                                    int which) 
                      {
                                                                   
                      });
               });
Как я понимаю, надо повесить этот обработчик внутри setPositiveButton?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2015, 13:40     Как красиво закрывать приложение?
Еще ссылки по теме:

Как оптимизировать приложение? - Программирование Android
При загрузке apk-файла в google play выдает ошибку==>Архив APK-файла не оптимизирован. Запустите инструмент оптимизации, а затем повторите...

Как защитить приложение? - Программирование Android
*.apk без проблем открывается винраром, *.dex, содержащий весь код, также легко декомпилируется с помощью соответствующего софта. Как...

Как сделать приложение полноэкранным - Программирование Android
Пытаюсь сделать так, но три точки меню остаются: super.onCreate(savedInstanceState); ...

Как создать похожее приложение? - Программирование Android
Доброго день, подскажите трудно создать похожее приложение? ...

Приложение по функционалу как VKontakte - Программирование Android
Привет всем! В башку залезла идея создать приложение близко похожее по функционалу к VK Twitter FaceBook В котором можно было бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
04.11.2015, 13:40     Как красиво закрывать приложение? #7
Ханасака,
да по идее можно и просто так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        finish();
                    }
                }, 300);
            }
        })
Yandex
Объявления
04.11.2015, 13:40     Как красиво закрывать приложение?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru