安卓:何时使用对话框(Dialog)和活动(Activity)

21

在Android中,什么情况下使用对话框比使用活动更可取?据我所知,使用对话框可以实现的所有功能都可以通过活动来完成。是否存在只能通过活动或对话框来完成的任务?


好问题,我想知道在Android设计指南中是否有规定应该或不应该做什么。 - Zapnologica
4个回答

14

你正在做的事情是否值得创建一个新的Activity?你需要能够通过Intent启动它吗?你真的需要为此创建一个新的Java类吗?

如果它只是简单地显示文本并具有简单的正向/反向/取消功能,那么绝对应该使用对话框。

如果你要展示的内容比较复杂,那么可能需要使用完整的Activity。


我正在尝试实现类似 Snapchat 上看到的表情弹出功能。在拍照后,您可以按下一个表情按钮,然后会有25个表情叠加在相机上,您可以选择特定的表情,底部还有一组按钮可用于切换不同类型的表情。我认为使用 Activity 更好实现这个功能。 - Daniel Viglione
非常好的回答!如果你知道这些细节,你能否加上内存权衡(以及较低的性能优先级)的两种方式 - 从内存分配(因此GC工作)的角度来看,启动一个新的活动与启动一个新的对话框相比,是否更加昂贵? - undefined

1

当我需要一个需要返回堆栈、导航、生命周期和可调用功能的用户交互时,我会选择使用Activity。如果只是简单的对话框,那么我会选择使用WebApp世界中的新服务器页面或弹出窗口来实现交互。在Android世界中做出决策变得更加容易了!

如果需要新的服务器页面,则大多数情况下使用Activity。

否则,如果需要弹出窗口,则使用对话框。


1

为什么您想要启动一个新的活动来问用户“确定吗?Y/N”呢?对话框通常运行在活动的顶部,它们通常是较小的活动或通知用户的消息。它们通常与应用程序运行过程有关。在当前活动的顶部打开一个对话框提示用户会比启动新活动更简单。


0

我在一个片段中创建了我的Android应用程序,并嵌套了警报对话框,到目前为止,我的应用程序仍然可以很好地处理这些嵌套对话框,而且我认为对话框比活动消耗的内存更少。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接