【问题标题】:Android, Unlimited Number of Activities in a Project and activity lifecycle !Android,项目和活动生命周期中的活动数量不限!
【发布时间】:2011-06-04 11:07:46
【问题描述】:

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

例如,我的应用程序包含 37 个活动。有这么多吗?我想知道像《愤怒的小鸟》这样有200多个关卡的游戏,它有200个活动?!!

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

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

我已阅读activities page published by Android,但找不到答案。

对不起,如果上述问题是愚蠢的问题:) 谢谢

【问题讨论】:

  • 可以在intent之后关闭当前activity到新activity(通过在当前activity中调用finish())。这样可以关闭您不打算使用的活动,或者如果您希望用户在按下后退按钮时关闭应用程序,然后在意图声明之后完成每个活动

标签: android android-activity lifecycle


【解决方案1】:

以 Anry Bairds 为例,我怀疑他们有 100 多个活动,我认为他们只有一个(或可能几个)用于关卡,另一个用于欢迎屏幕 - 可能会根据某些参数加载不同的关卡传递给活动。

至于如何处理100s加载的activity,首先,系统很有可能在你到达第100个activity之前,回收栈底的旧的。如果不是,那么是的,您的用户将不得不在 100 个活动中单击返回。

如果你想改变后退按钮的行为,你可以重写onKeyDown()。

或者,如果您想更改活动启动方式的默认行为,请查看activities launch mode。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    首先,关于愤怒的小鸟,我猜它几乎完全是用 OpenGL ES 编写的,所以它只包含几个活动。

    其次,如果您真的有 200 个活动,您可能应该考虑一个可以重复使用多次的活动。例如如果每一页都应该具有相同的外观和功能,为什么您需要为一本书的每一页进行一项活动?只需使用额外的数据触发一个意图,它应该可以工作。而且,要关闭应用程序,您只需按主页按钮 :-)

    【讨论】:

      【解决方案4】:

      像愤怒的小鸟这样的应用程序可能有一个带有 OpenGL ES 视图的 Activity,所有的接口都使用 RelativeLayout 完成

      话虽如此,您可以拥有无​​限数量的活动,唯一关心的是您的应用将占用多少空间,为什么任何用户都希望在他们的移动设备上浏览如此强大的程序,以及您有多少 RAM正在使用并且您是否有效地管理您的活动

      【讨论】:

        猜你喜欢
        • 2013-01-13
        • 2011-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        • 2014-05-18
        • 1970-01-01
        相关资源
        最近更新 更多