2012-04-19 66 views
1

我对Android非常陌生,但在过去的两三个星期里,我设法弄清楚了它的大部分内容以及工作原理。 但是,有一件事仍然困扰着我 - 活动和简单形式之间的基本区别是什么?那么,我知道Android没有“形式”这样的东西,但是我的意思是全屏布局的元素具有一个基础类,并且它的所有功能都在其中执行,而不是在全过程类中执行(活动,确切地说)。Android中的活动和简单表单之间的根本区别是什么?

只要我明白,Activity是一个独立的进程,由OS实例化,执行一些基本独立于整个应用程序的操作。这也意味着我们只能运行其中一个应用程序的活动,并且仍然可以执行其所有功能,而无需加载整个应用程序。例如,如果我们有一个电影播放器​​,也可以将电影从一个编解码器转换为另一个编解码器,我们可以将该功能作为单独的“活动”来实现,以便其他应用程序(如文件管理器)也能够使用表示Activity,而不是整个应用程序。

而这看起来非常简单。问题是,为什么每个人都使用单独的活动来实现不能将与应用程序分开的功能?换句话说,人们通常使用活动,我认为简单的形式在同一过程中会更合适。例如,我已经看到人们使用单独的Activity来处理诸如应用程序设置之类的事情,这显然不会在应用程序本身之外启动,或者编辑特定于应用程序的数据,这也不会在应用程序之外完成,因为要编辑的数据应该从只有应用程序已知的列表中选择。

另一个例子正好来自我的经验 - 一个单位转换器应用程序。它有一个带有单元类别的GridView的主菜单,每个类别都有一个单元列表,通过点击任何单元我们有一个'计算器'表单来输入我们想要转换的值。如果我像所有人一样这样做,我会有三个活动 - 一个用于主菜单,一个用于单元列表,另一个用于输入值。但为什么?为什么我想要启动与应用程序分开的三项活动中的任何一项?如果我想要启动主菜单活动 - 那么为什么不启动整个应用程序呢?如果我只想要一个单元列表 - 再次启动整个应用程序,它不像是某个Facebook客户端将在压力单元之间转换值(因为单元列表一次只能涵盖一个类别)。并且为计算器启动一项活动根本行不通,因为它应该返回到列表以执行转换,并且您不会启动列表活动。

反正就算我错了,人们使用它明智地还是有一个问题,Android的SDK并没有真正提供形式,因为我已经习惯了任何支持。是的,有些东西像ViewAnimator,ViewSwitcher等等。但他们所做的只是将布局切换到原来的位置,而且很难在表格之间切换。因此,至少接近该功能的唯一选择是使用活动。我们又回到了广场。

因此,简单地说 - 我错过了Android的哲学?因为我非常确定为应用程序中的每个表单使用一个单独的Activity(以及一个单独的进程)是一种矫枉过正的行为。如果真的是这样,每个人都知道 - 为什么Android没有任何实质的形式切换机制?

在此先感谢您对此问题的任何澄清。

回答

4

一个活动不会在单独的过程中产生(除非您明确告诉它)。您的APK中的所有内容都将在您的过程中产生。即使其他应用程序因任何原因正在使用您的活动。

您可以通过在清单中不指定任何意图过滤器来将您的活动“有效”私有给您的应用程序。

对于给出的例子,表单等于一个活动。当你深入研究Android时,这不是一个普遍的陈述,但对于初学者来说,这是一个很好的比喻。另一个常见的比喻是活动比传统的基于形式的UI更像网页。

相关问题