用户请求删除文件后(通过上下文菜单),会触发 DialogFragment 要求用户确认。如果用户确实确认,则调用 Activity 会删除该文件。
至少有两种方法可以做到这一点。
- DialogFragment 调用 deleteFile(),Activity 中的一个方法,它本身可以通过 getActivity() 访问。
- Activity 实现了一个 DeleteFile 接口。DialogFragment 设置一个Uri,将监听器初始化为Activity,并向监听器发送消息。为了更加安全,onAttach() 确认 Activity 确实实现了必要的接口。
该文档表明,第二个选项更好,至少在一般情况下。但在这种情况下,无论用户何时触发旋转(重置 Activity 和 DialogFragment),第一种方法似乎都非常可靠。
第一种方法是否完全足够,或者是否存在除了轮换之外的其他方案可以使第二种方法更好。