DialogFragment优于AlertDialog
在开发Android应用程序时,我已经读过build议使用DialogFragment而不是直接使用AlertDialog来显示警报和确认。 
例如,在DialogFragment的文档上完成这个工作: http : //developer.android.com/reference/android/app/DialogFragment.html
人们也说他们更喜欢这里: Android的DialogFragment与对话框
我想知道这种方法的优点,因为代码变得更复杂。
谢谢
在Dialog上使用DialogFragment:
- 
自引入API级别13以来 : 来自Activity的showDialog方法已被弃用 。 在代码的其他地方调用一个对话框是不可取的,因为你将不得不自己pipe理对话框(例如方向改变)。 不使用showDialog会导致偶尔的exception,对话框没有链接到任何Activity。 关于showDialog的注意事项: 对话框参考:活动提供了一个设施来pipe理对话框的创build,保存和恢复。 请参阅onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int)和dismissDialog(int)。 如果使用这些方法,getOwnerActivity()将返回pipe理此对话框的Activity。 
- 
DialogFragment和AlertDialog之间的区别 在阅读你的问题时想到一件事。 他们差别很大吗? DialogFragment与Dialog非常相似,只是包装在一个片段中。 从Android参考有关DialogFragment: DialogFragment是一个片段,它显示一个对话窗口,并在其活动窗口之上浮动。 这个片段包含一个Dialog对象,它根据片段的状态适当地显示它。 对话框的控制(决定何时显示,隐藏,解除)应该通过这里的API完成,而不是直接调用对话框。 
- 
其他说明 - 由于具有不同屏幕尺寸的设备的多样性,碎片是Android框架中的自然演变。
- 支持库中提供了DialogFragments和Fragments,使得该类可以在所有当前使用的Android版本中使用。
 
 这很容易。 
  DialogFragment是一个片段。 那么一个片段可以提供给你什么,而其他的东西不能? 
 这是生命周期callback。 
 因此,使用DialogFragment,它可以非常强大,使您的代码更清洁。 
 如果在活动被破坏时没有closures对话框,你有没有看到过窗口泄漏? 所以为了防止这种情况,你有没有试图在onPause()被调用时closures对话框? 所以要做到这一点,你有没有把这个对话框引用到一个类对象? 
 使用DialogFragment,全部处理完毕。 
 你得到所有的生命周期callback。 
 然后,你可以提供更多的对话的智慧,使它自己做一些聪明的工作,而不是活动告诉它做什么。