为什么不鼓励直接实例化Dialog类?

时间:2012-03-24 22:40:33

标签: android android-dialog

当用户点击Activity中的选项菜单时,我想显示一个对话框。我首先想用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 :(得分:0)

Android开发指南添加了大量额外信息,以帮助开发人员避免占用大量处理时间的任务。直接实例化Dialog类可能会占用更多的处理时间。

答案 1 :(得分:0)

系统会保留对话框的缓存,因此您无需自行管理。每个对话框只创建一次并存储在某处,以便以后可以重复使用。那是因为创建一个对话框的计算成本很高,我猜。系统为您提供了在第一次需要时创建对话框并在显示

之前准备对话框的钩子