Android设计应用流程

Posted

技术标签:

【中文标题】Android设计应用流程【英文标题】:Android designing application flow 【发布时间】:2010-12-16 05:42:01 【问题描述】:

我正在创建一个具有许多不同屏幕的 android 应用程序,用户可以使用这些屏幕中提供的按钮或列表导航到这些屏幕。设计整个应用程序的导航流程的最佳方式是什么?我应该将每个屏幕映射为视图还是活动?是否可以设计一个只有一个活动和多个视图的完整 Android 应用,其中每个视图代表一个带有许多其他 UI 元素(按钮、列表、图像等)的屏幕

【问题讨论】:

【参考方案1】:

我建议您为每个与另一个屏幕显着不同的“屏幕”(在与其相关的外观和数据方面)使用一个新活动。这使您可以更轻松地进行控制,并且您不必用大量变量来混淆代码来定义不同的状态。使用不同的活动,您通常不必担心运行在不希望的甚至未定义的状态。

要在活动之间交换数据,您可以使用putExtra() 将“简单”数据添加到INTENT,或者对于更复杂的数据,您可以扩展Application 并将该实例用作单例,然后您可以通过以下方式访问它(MyApplication)getApplication();

【讨论】:

【参考方案2】:

真的想远离单一活动的想法。这实际上是 Java 模型 1 Web 应用程序时代的一种反模式,称为“魔法 servlet”。我想在这里它会被称为“魔法活动”。用户与之交互的每个逻辑“屏幕”都应该是 Activity 类的一个实例。

根据用户交互修改单个用户界面元素是可以的,只要它只是一两个元素,或者只是屏幕的一部分,但在大多数情况下,您应该寻找将事物拆分成自己的理由活动,而不是寻找使事情保持在一起的理由。从长远来看,它将使您的代码更易于维护和理解。

【讨论】:

我同意这种观点。但是,当使用 TabActivity 时,视图可以是活动或视图,即使内容明显更好。这是由于与创建 Activity 相关的开销所致。 对不起,我的意思是“如果内容明显不同,那就更好了”:)

以上是关于Android设计应用流程的主要内容,如果未能解决你的问题,请参考以下文章

Android app开发流程都有哪些环节

魅族工程师讲堂 | Android 通话应用设计

如何设计 React-Native Android 应用的导航器结构?

反思|Android View机制设计与实现:测量流程

反思|Android View机制设计与实现:布局流程

Android 逆向加壳的 Android 应用启动流程 | 使用反射替换 LoadedApk 中的类加载器流程