Android,管理视图,任务和活动

时间:2012-09-12 15:55:17

标签: android

我需要一般性建议。

我正在构建一个可以通过图标(正常方式)启动的应用程序,但也可以通过通知区域中的点击触发意图(应用程序在通知区域中放置一个图标)。当发生时间事件/警报时,它会被唤醒。

该应用有5到10个视图。为每个视图打开一个新活动会更好吗?我如何确保不打开多个任务?假如我的应用程序是Activity-A,Activity-B,Activity-C,可以从Activity-A和Activity-B启动(取决于它是通过图标还是通知区域打开)...我该如何清理所有内容应用关闭?

或者是否更好地拥有一个活动并只切换视图(xml布局)?

3 个答案:

答案 0 :(得分:0)

我将从您应该观看和阅读的内容开始。应该很清楚Android中的导航很容易出错。谷歌在应用程序与应用程序方面有着不同的历史,但它们正在变得越来越好。这就是说,如果你要做一个应用程序,你应该知道它的工作方式,最好的方法是阅读文档。如上所述,有一个很好的talk at IO'12design site上还有一个非常好的部分,最后API Guides中有一个很好的部分。

总结:全屏是一种活动(反过来可以由片段构成)。几乎在所有情况下,活动都应该构建为树,其中根是从家中发起的活动。对于每个活动,您应该有一个“向上”活动,将您带入层次结构中。请注意,这与后面的内容不同,后者应该将您带到您所在的最后一个全屏状态。另请注意,全屏表示不应将选项卡记录在“后退历史记录”中,因为它们在屏幕内提供导航。

在点击通知时,它应该等同于:按home,从最近视图中删除任务(清除任务),打开任务,最后走最短路径到达显示信息的活动通知告诉你的。复杂,确实是......但至少在JB和支持库中有一个名为TaskStackBuilder的辅助类。

所有这一切的关键是遵循Android设计准则的UI设计。花点时间为您的应用程序进行设计,并确保将(静态)和后退(时间)分开。

答案 1 :(得分:0)

它可能就像使用不同的启动模式一样简单,您可以在清单中定义,或者我想在您使用的inent中。这需要一些实验,但SingleTask或SingleInstance可能是您的正确选择,

在这种情况下,您的活动应该支持onNewIntent,如果这是期望的效果,则重用现有的活动。

答案 2 :(得分:-1)

在这种情况下,我最好使用一个活动或使用片段。