我似乎错过了一些明显的东西,为什么我想在Android中为每个应用程序提供多个活动?有人有一些可靠的例子吗?
答案 0 :(得分:6)
假设您正在创建游戏。您需要至少有两个活动 - 欢迎屏幕和实际的游戏屏幕。此示例中的第三个活动可能是游戏的设置页面。
另一个例子。
假设您正在开发一个应用程序,您需要弹出一个对话框,即要求用户设置用户名和密码(标准登录屏幕)。您可以选择创建和活动并将对话框主题应用于它。
将其视为桌面应用程序的形式。你不把一切都放在一个表格上吗? :)
答案 1 :(得分:4)
Sorantis的回答是现场。以下是其他想法:
大多数Web应用程序,即使是AJAX-y,也不会尝试将所有内容都放在一个页面中。有些人会这样做,那些往往是加载糖蜜的速度很慢(Evernote,我正在看着你),代码看起来像堆积的意大利面等等.Android也不例外。
此外,超级复杂Activity
的状态管理将是令人讨厌的,导致屏幕旋转问题并支持因为你搞砸onSaveInstanceState()
而被踢出RAM。 Android中的内存管理承担了大量廉价活动,而不是大量活动。智能处理BACK按钮需要您自己的逻辑。如果你想要多个入口点(例如,Launcher图标和MIME类型处理程序以及其他应用程序可以使用startActivityForResult()
和搜索结果处理程序调用的东西),那么在一个活动中执行此操作将是一场噩梦。等等。
答案 2 :(得分:1)
使程序中的多个活动变得可取的一个非常基本的事情是使用后退按钮。我在用户单击搜索后在应用程序中有一个表单,其中显示了另一个显示搜索结果的活动。如果他想改变搜索参数,他可以回过头来,没有我做任何特别的事情,他会回到搜索表单。通过一项活动完成这项工作对您来说将是很多工作。
接下来是内存管理。 Android将在更改活动后自动触发垃圾收集,这意味着我的整个搜索表单将离开内存并且不会从用户那里获取任何资源。