问题标签 [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.
android - 如果后台堆栈中已经存在,则恢复 Activity 而不是启动
Activity_1
经过很多步骤后,我说
Activity_2
> Activity_3
.... 在某些情况下,Activity_n
我更改了一些相关的数据Activity_1
并使用它来调用它
刷新内容。但后来我可以一直回到Activity_1
我开始的地方,那里有旧数据。
相反,我希望使用上面的代码调用初始Activity_1
的 's 。onResume()
或适当的标志
FLAG_ACTIVITY_CLEAR_TOP
考虑一个由以下活动组成的任务:A、B、C、D。如果 D 调用 startActivity() 并带有解析为活动 B 的组件的 Intent,则 C 和 D 将完成并且 B 接收给定的 Intent,从而导致堆栈现在是:A,B。
这就是文档所说的,但不是我得到的。
android - Android:在 singleTop/singleTask 模式下绑定应用程序 (AIDL)
我用 AIDL 文件绑定了 2 个 android 应用程序。A和B应用程序之间的交换如下:
- A应用通过AIDL接口连接到B应用
- A应用调用B服务的方法
- B 服务返回一个 PendingIntent
- 应用程序启动 PendingIntent
- 当 B 应用程序中的操作完成时:返回 A 应用程序
但是,如果 B 应用程序在交换之前启动,则在调用“finish()”方法后,用户将被重定向到 B 应用程序的最后一个活动,而不是在 A 应用程序中。
在我的 A 应用程序中:
我尝试在 A 应用程序清单文件中将 android:launchMode 设置为 singleTask 或 singleTop 但问题仍然存在。如您所见,我在发送活动时还放置了一个“FLAG_ACTIVITY_MULTIPLE_TASK”标志。
我的 B 应用程序中的代码:
创建 PendingActivity
在计费活动中
感谢您的阅读!
- -更新
我的 B 活动清单文件:
android - Back Stack 中只有一项活动
我有 5 个活动:A、B、C、D 和 E。
我可以从每个活动开始所有活动,但我希望 Back Stack 只保存最后一个活动。
例如:A->B->C->D。如果我在 D 中,我可以回到 C,但是现在,在 C 中,当我按下后退按钮时,我只想回到主要活动 (A)。
有可能吗?谢谢!
android - 允许 backstack 填充数十个重新实例化的活动?
这是一个直截了当的问题,但我找不到任何明确的信息来帮助我做出决定。
我有一个包含 2 个表格(2 个活动)的应用程序,这些表格为给定对象填写,清除,然后为下一个对象填写。在给定应用程序的运行期间,这可能会完成 100 次以上。因此,backstack 可以填充 100 多个活动。
所有这些数据都保存到一个 sqlite 数据库中,所以我应该允许 backstack 像那样填充吗?性能影响是什么 - 存储数百个表单实例肯定会开始产生影响。这些实例是否足够有效地存储以至于我不必担心这一点,或者后台堆栈是否有某种限制?有没有办法让 backstack 只存储输入的数据,或者保存的“实例”是否仅由输入的数据组成?查询一个 sqlite 数据库 onbackpressed 而不是比允许 backstack 加载以前的表单效率低得多?有没有办法重新加载现有实例 alaFLAG_ACTIVITY_SINGLE_TOP
并清除现有输入的数据,但将其(数据)保存在后台堆栈中?
我一直在阅读/告诉我修改后退按钮的行为、backstack 和 android 的活动管理是一个坏主意,这让我作为一个 android 新手尝试这样做。
我认为这两种形式的数据的大小不会超过这个问题的第 2 段,仅供参考。
感谢您的帮助。
编辑以回应 JoxTraex:
fill -> add -> fill -> add -> n -> commit
那么可能是
fill activity A and then instantiate and fill B -> transact to DB -> REinstantiate and fill A then REinstantiate and fill B -> transact to DB -> n -> commit
我理解正确了吗?
如果是这样,重新加载而不是实例化 A 和 B 的新实例应该可以解决 backstack 问题,因为其中只会有 2 个活动。
这导致人们对onbackpressed
将要做什么感到困惑——它会重新加载先前输入的数据还是工作不超过两次,因为后台堆栈中只有 2 个活动?
android - 屏幕旋转后webview backstack丢失,页面的后退按钮历史记录,Android
我在 Activity 中有一个 WebView,它在一个屏幕方向上效果很好。我可以导航到网站上的不同页面,当我点击后退按钮时,它会回到我之前访问过的上一个页面,
但是,当我将 Android 平板电脑从一个方向旋转到另一个方向时。就像从肖像到风景一样,这段历史消失了。我通过 saveInstanceState 将 WebView 当前所在的 URL 传递到下一个方向。
屏幕旋转后,新创建的 WeView 会按预期打开指向 URL 的页面。当我点击后退按钮时,它不会去任何地方。
我该如何解决这个问题?
这是我的一些代码,它是我处理后退按钮的部分。
android - 恢复 backstack 中不是最顶部的 Fragment
给定的应用程序流程显示在图形和文字描述如下。
- 通过设置,片段 1 是最低的片段,但不在后台堆栈中
disallowAddToBackStack
。 - 片段 2 被推入堆栈,使用
fragmentTransaction.addToBackStack()
. - 片段 1 的新实例被压入堆栈。
- 最顶部的片段(片段 1)从堆栈中弹出。
- 活动 2 成为前台。
- 活动 1 成为前台。
这是我用来处理片段的通用方法:
问题
当活动 1 在最后一步恢复时,片段 1 的最低实例也恢复。此时片段 1 重新null
打开getActivity()
。
问题
- 为什么恢复堆栈中不是最顶部的片段?
- 如果恢复片段是正确的 - 我应该如何处理分离的片段?
android - 让 onBackPressed() 关闭应用程序
我有一个使用片段的应用程序。在应用程序启动时,我这样做:
如您所见,我没有将其添加到 Backstack 中,因为我不希望用户陷入没有片段的空活动中。然而,这是行不通的。因为当我按下master
屏幕上的后退按钮时,它会关闭片段并使我处于黑色活动状态。现在我重写了onBackPressed()
帮助我的方法:
但是每当CreamyActivity.this.finish();
它再次关闭片段并进入空白活动时(就好像它只是跟随后台堆栈)(这都是在活动中顺便说一句!)
我想知道你是否可以帮助我。通常应用程序不应该自行关闭,但我非常感谢这里的解决方法。还是我在后台做错了什么?它会自动添加它吗?
提前感谢<3
android - android中的最大BackStack大小
我是android开发的新手。我需要知道android中BackStack的最大内存大小
我想知道有多少Android 应用程序的活动可以存储在 BackStack 中
谢谢
android - 片段之间的后退按钮问题(backstack)
我有一个带有 3 个标签的应用程序。对于其中两个选项卡,我有按钮,可以在其中使用以下代码将当前片段更改为新片段:
对于一个正常片段的选项卡,更改为地图片段后退按钮将我带回原始片段,没有任何问题。
但是,另一个作为 mapfragment 的选项卡,在按下后退按钮时不会给我相同的操作。当它被按下时,它会将视图更改为白色/黑色视图。
这是选项卡中的事务代码,其中后退按钮不起作用:
有谁知道为什么会这样?有什么帮助吗?
android - 我们如何检查,哪个片段是从 android 的 Back Stack 加载的
我是一名初学者级别的 android 程序员。现在我在进行应用程序开发之后。我在我的应用程序中使用片段。在加载片段时,我隐藏并显示了一些视图。
例如,有 3 个片段(比如 A、B、C)和 3 个视图(比如 View1、View2、view3(这些可能是图像视图))。而我正在加载片段A View1.setVisibility(true) View2.setVisibility(false) View1.setVisibility(false) 并且当我正在加载片段B View1.setVisibility(false) View2.setVisibility(false) View1.setVisibility(true) 像这样对于 Fragment C 也是。但问题是这些被添加到 backstack 中。当按下后退按钮时,当然正在加载正确的片段,但视图可见性没有恢复。
谁能帮帮我谢谢