问题标签 [back-stack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
558 浏览

android - Home键后恢复子活动

我的问题是onStart,onResumeonRestoreInstanceState在使用 home 键并重新启动后没有被系统调用。情况如下,

  1. Activity 是前 3 秒内的闪屏,
  2. 然后使用主屏幕(带有视图和按钮)启动另一个活动,
  3. 其中一个按钮启动一个带有网格视图(游戏关卡)的活动,
  4. 我从那里开始一项具有实际游戏关卡的活动。

所有这一切都很好,然后在第 4 个活动中,我按 Home,做一些事情,然后再次长按 Home,选择我的应用程序图标重新启动。

系统将我直接带回到第三个活动(不是第四个)。但更糟糕的是,这第三个活动从它重新启动的系统中没有得到任何回调!

怎么会这样?

0 投票
1 回答
1050 浏览

android - Android历史堆栈 - 回溯不止一步

这是场景:

  1. 在活动A中,我有“发布到 Twitter”选项,它调用执行帖子并通过执行B返回的活动,流程是AActivity#finish()A->B->A
  2. 但是,如果我没有登录 Twitter,那么该B活动会在浏览器中调用 Twitter 移动 OAuth 页面。然后浏览器将用户重定向回B. 但是,当B完成并调用时,Activity#finish()我将返回浏览器登录页面,这是预期的,因为堆栈现在是A->B->browser->B.

我如何退后 3 步而不是仅退一步?甚至可能吗?我不想A重新打电话,因为至少我会失去一个名单位置

0 投票
13 回答
193827 浏览

android - 如何防止回到之前的活动?

当在手机上按下 BACK 按钮时,我想防止特定活动返回到之前的活动。

HomeScreen具体来说,我有登录和注册屏幕,两者都会在成功登录/注册时启动一个新活动。启动 HomeScreen 后,我想阻止用户通过按 BACK 键返回登录或注册屏幕。

我尝试使用Intent.FLAG_ACTIVITY_NO_HISTORY,但由于应用程序集成了 Facebook,当使用“使用 Facebook 登录”时,Facebook 应该返回初始登录屏幕,因此我应该保留这些活动的历史记录。

我想在按下按钮并使用时覆盖 BACK 按钮的行为HomeScreen以直接完成应用程序

但这也行不通。

0 投票
3 回答
3819 浏览

android - 按下主页按钮时如何清除活动历史记录堆栈?

我正在编写一个具有两种“模式”的应用程序;一种查看模式和一种编辑模式。该应用程序公开了两个主要/启动器活动(例如,AD),它们又具有自己的活动链(分别为BCEF)。两个入口点活动AD将在主屏幕中显示两个带有单独标签的图标,并且这两个链永远不会交叉,即一旦您在具有活动A的视图模式下启动应用程序,您可以来回走动的唯一路线是A , B , C如果您在编辑模式下使用活动D启动应用程序,则唯一可用的活动链是DEF

现在,我的问题是,如果以例如查看模式(活动链ABC)启动应用程序并从该链中的任何活动中按下 Home 按钮,我将返回主屏幕(当然)但如果我那时在编辑模式下重新启动应用程序(活动链DEF)我进入按下 Home 按钮时正在进行的活动(即错误链中的活动) - 不是编辑模式的预期入口点; 活动D。 _

我该如何解决这个问题?

我已经为所涉及的活动尝试了android:noHistory,android:clearTaskOnLaunch和其他属性的各种组合。AndroidManifest.xml但它们似乎只影响活动本身,而不是整个链条。

我想在按下 Home 按钮时从历史堆栈中删除整个活动链(ABCDEF),但在我仍在链中时仍保持堆栈完整(我想要能够从活动B中按下后退按钮并进入活动A)。

0 投票
17 回答
139265 浏览

android - 获取 backstack 中的最新片段

如何获取添加到 backstack 中的最新片段实例(如果我不知道片段标签和 id)?

0 投票
1 回答
10308 浏览

android - 按顺序从 backstack 中获取所有 Fragment

我在我的应用项目中使用Fragments 。所有片段都添加到后堆栈

稍后,按顺序从后堆栈中获取所有片段的正确方法是什么?

0 投票
1 回答
3391 浏览

android - 如何将应用程序回栈保存到包中?

我想保存我的应用程序的状态,以便当它从关闭状态重新打开时,最后一个片段是可见的,并且保留了返回堆栈。我想在每次关闭应用程序时保留此状态,而不仅仅是在方向更改或系统终止应用程序以释放资源时(如使用onSaveInstanceState()/时的情况) onRestoreInstanceState()

到目前为止,我已经能够通过将状态保存到 SharedPreferences 并稍后恢复它来按计划恢复以前的片段及其状态。但是,这不会保留片段返回堆栈,因此当用户加载应用程序并按下返回按钮以在应用程序流程中“向上”移动时,应用程序会退出而不是向上移动。

在这一点上,我需要的是能够访问应用程序回栈,并在必要时将其保存到包中,就像系统在onSaveInstanceState(). 我已经阅读了文档,FragmentManager.saveFragmentInstanceState()但我不确定如何使用它来实现我的目标。谁能指出我正确的方向?

我正在使用 Android 兼容性库中的片段实现。

0 投票
2 回答
5171 浏览

android - Android onConfigurationChanged:如何保存和恢复片段回栈?

我有一个带有双窗格的活动:左侧的菜单项列表(片段 M)和右侧的当前所选项目的详细信息(片段 D)。

当用户在片段 D 中选择一个项目时,片段 D 被另一个片段替换(我们称之为 D1)。当用户在片段 D1 中选择一个项目时,片段 D1 会被另一个片段(我们称之为 D2)替换,依此类推。当然,当用户按下返回按钮时,她可以返回片段历史:D2->D1->D。

我的问题是:如何在配置更改时(特别是在屏幕方向时)保存和恢复完整的片段返回堆栈?

对我来说似乎很奇怪,以前没有人遇到过这个问题,但是在我在 Google 和 Stack Overflow 上搜索时,我没有发现任何关于这个问题的信息。如果我错过了任何相关的帖子,请联系我。

我知道我可以简单地将android:configChanges="orientation|screenSize"属性添加到我的活动中以避免重新进行活动,但我根本做不到。

我不能这样做的原因是我正在使用 Action Bar Sherlock(第 4 版)来实现向后兼容性,并且该组件需要重新创建活动才能在配置更改时正确运行,AFAIK。

如果有另一种方法可以在不破坏和重新创建活动的情况下重新创建 Action Bar Sherlock 组件,请告诉我。

提前致谢。

0 投票
2 回答
608 浏览

windows-phone-7 - 如何在 Windows Phone 7.1 中导航回主屏幕

我创建了一个具有主屏幕/登录页面的应用程序,现在每当用户导航到最后一页并单击设备后退按钮时,他都会被重定向回主屏幕。现在的问题是,每当用户在主屏幕 OnNavigatedTo 块中登陆主屏幕时,我已经编写了代码来清除所有后台堆栈。因此,每当用户单击最后一页的设备后退按钮时,他都会通过创建 HomeScreen 页面的新实例导航到主屏幕。在主屏幕上,后台堆栈被清除,因此用户可以在单击设备后退按钮时从主屏幕退出应用程序。但根据 Microsoft 市场政策,后退按钮必须返回或返回到 backstack 中的上一页,而不是导航到新页面。所以这里的问题是我应该清除所有的后台并进入主屏幕还是我正在做的事情是正确的?

0 投票
1 回答
191 浏览

navigation - 如何在 WP7.1 中导航到 backstack 中的特定页面

如何根据 Wp7.1 中导航回栈中的页面名称导航到特定页面。我想在按下设备后退按钮时从 C 页返回说 A 页,我不知道中间有多少页。

谢谢,金谷