gpt4 book ai didi

android - 如何防止在android中增加 Activity 堆栈

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:57 25 4
gpt4 key购买 nike

我在某处读到,每次调用 startActivity() 以转换到新屏幕时,您都在创建该 Activity 的新实例。这立即向我发出了危险信号。

为了寻找防止此问题的方法,我阅读了有关使用 FLAG_ACTIVITY_REORDER_TO_FRONT 的信息。但是,我看到的任何用于在您的应用程序中打开新屏幕的教程中都没有使用这种方法,这让我感到有些震惊。所以我想我可能会遗漏一些东西。我的意思是你不会总是想确保你没有创建重复的 Activity 吗?这不是一件大事吗,教程不应该解决它吗?

我只是想确保我正确理解和处理这个问题,并使用常用的方法在屏幕之间进行转换。

我知道在某些情况下你打开一个屏幕,做一些事情,然后使用 finish() 关闭它并返回。但是,如果应用具有复杂的 4 级层次结构,并且用户需要能够在屏幕之间跳转?

最佳答案

I mean wouldn't you always want to make sure you're not creating a duplicate Activity

大多数时候,您可能不希望拥有同一 Activity 的两个实例,但我想有些情况下有人可能会这样做

isn't this kind of a big deal and shouldn't tutorials address it

这绝对是Android开发者需要了解和了解如何使用的东西。我想你可能不会在教程中看到很多,因为它们中的大多数都会教你入门的基础知识。当开发人员刚接触 Android 时,他们通常已经足够了解框架。他们通常会向您展示如何做几个屏幕(这通常是某人可能需要的全部)。他们希望您通过阅读文档和使用诸如 SO 之类的网站来了解更多细节

I understand in some cases you open a screen, do something, then close it using finish() and go back. But if an app has a complex 4 level hierarchy , and the user needs to be able to jump around between the screens?

是的,很多时候你不会陷得太深,因为越深越容易产生“迷失”的感觉。这就是为什么我喜欢尽可能将 ActivitiesDialog Theme 一起使用。它给人的感觉是你实际上并没有离开你所在的屏幕。但是,这并不能真正回答您的问题。有许多标志可以与 Intents 一起使用,以防止堆栈增长。你提到的那个有效,如果我需要从堆栈中清除所有 Activities 并返回到一个 Activity Intent.FLAG_ACTIVITY_CLEAR_Top。应用程序、用户和开发人员之间可能存在许多不同的情况,因此您如何转换和处理流程或导航仅取决于您(实际上是用户)的需求。

通过提出这些问题,您似乎走在了正确的轨道上。想想什么会给用户最好和最自然的体验,并在 Intent Docs 中找到正确的标志。适合你的情况

我希望这能为您解决一些问题。有什么不明白的地方,尽管问

关于android - 如何防止在android中增加 Activity 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16556126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com