安卓系统:一个项目中无限数量的活动和活动生命周期!

3

前几天,我在Android市场上发布了我的应用程序,在设计和开发应用程序期间,我想到了一个问题。这个问题是关于活动数量的限制或不限制。

例如,我的应用程序包括37个活动。这太多了吗?我想知道像“愤怒的小鸟”这样有200多个级别的游戏,它是否有200个活动?!!

我的下一个问题是,假设我正在设计一个包含100个活动的应用程序。用户启动应用程序并进入最后一个活动(例如阅读一本书)。如果用户想关闭应用程序,他应该怎么做?在他的设备上按下返回键100次?! 如果我想在选项菜单中放置关闭按钮(以帮助用户),我是否必须为每个活动重复此操作?因为据我所知,每个活动都有自己的菜单。

如果我在最后一个活动中放置关闭按钮,并且用户单击它,程序将关闭。其他99个活动会发生什么?它们仍然存在于堆栈中吗?或者当我关闭应用程序时,所有与该包相关的活动都将从堆栈中删除。

我已经阅读了由Android发布的活动页面,但我找不到我的答案。

如果上述问题很愚蠢,请原谅:) 谢谢


在启动新活动后,您可以通过在当前活动中调用finish()方法来关闭当前活动。这样,您将能够关闭不再使用的活动,或者如果您希望用户在按下返回按钮时关闭应用程序,则需要在意图语句之后完成每个活动。 - Ashwin
4个回答

2
对于Anry Bairds的情况,我怀疑他们没有数百个活动,我认为他们只有一个(或可能有一些)用于级别和欢迎屏幕 - 不同的级别可能会根据传递给活动的某个参数进行加载。
至于如何处理数百个已加载的活动,首先,在到达第100个活动之前,系统很可能会回收堆栈底部的旧活动。如果没有,那么是的,您的用户将不得不通过100个活动返回。
如果您想更改返回按钮的行为,则可以覆盖onKeyDown()。
或者,如果您想更改启动活动的默认行为,请查看activities launch mode


1

首先,关于愤怒的小鸟,我猜它几乎完全是用OpenGL ES编写的,因此它只包含了很少的活动。

其次,如果你真的有200个活动,你应该考虑一个可以多次重复使用的活动。例如,如果每一页都应该具有相同的外观和功能,为什么需要为每一页书创建一个活动呢?只需使用额外的数据启动一个意图即可。而且,要关闭应用程序,只需按下主页按钮即可 :-)


0
一个像愤怒的小鸟这样的应用程序可能有一个带有OpenGL ES视图的活动,并且所有接口都可以使用RelativeLayout完成。
话虽如此,您可以拥有无限数量的活动,唯一需要考虑的是您的应用程序需要多少空间,为什么任何用户都想在移动设备上导航一个如此强大的程序,以及您正在使用多少RAM并且您是否有效地管理您的活动。

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