Почему не рекомендуется напрямую создавать экземпляр класса Dialog? - PullRequest
4 голосов
/ 25 марта 2012

Я хочу показать диалоговое окно, когда пользователь нажимает на меню параметров внутри действия. Сначала я хотел сделать это с помощью класса Dialog. Код похож на приведенный ниже.

final Dialog d = new Dialog(this);
d.setContentView(R.layout.customDialog);
d.setTitle("Sample title");

data = (EditText) d.findViewById(R.id.data);
button = (Button) d.findViewById(R.id.aButton);
d.show();

button.setOnClickListner(new View.OnClickListner() { 
    // grab data from edittext and save it to some var 

    d.dismiss();
});

Нечто подобное. Руководство разработчика предлагает мне не создавать экземпляр класса Dialog напрямую. Есть ли что-то особенно плохое в этом подходе?

Ответы [ 2 ]

0 голосов
/ 25 марта 2012

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

0 голосов
/ 25 марта 2012

Руководство разработчика android добавляет много дополнительной информации, чтобы помочь разработчикам избежать задач, которые занимают много времени на обработку. Создание экземпляра класса Dialog напрямую, вероятно, отнимает намного больше времени.

...