gpt4 book ai didi

android - 删除 OLDEST 提交的返回堆栈 fragment

转载 作者:行者123 更新时间:2023-11-29 19:20:25 24 4
gpt4 key购买 nike

我有一个抽屉导航菜单(只有几个项目)调用切换 fragment ,像这样:

 FragmentTransaction trans = fragmentManager
.beginTransaction()
.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.replace(R.id.container, newFragment)
.addToBackStack(String.valueOf(item.Index)); // item.Index is clicked nav. drawer item index

trans.commit();

现在,当用户使用抽屉在应用程序中导航时,后台堆栈会不断增长。当堆栈中有很多项时(比如 > 30 或类似的东西),会占用一定数量的内存,我不喜欢这样,因为它有可能在某个时候达到临界点,我'会得到 OOMException。

那么有什么方法可以从返回堆栈中删除 OLDEST 项吗?我不想使用 popBackStack() (和类似的),因为它会删除最新的项目,我想删除第一个(最旧的)项目,因为用户可能不记得在哪里他/她之前导航了 10 次。

最佳答案

我找到了某种解决方法,所以我会回答我自己的问题,也许有人会觉得它有用。

由于无法从 FragmentManager 中删除最旧的堆栈,因此我决定将其丢弃并使用我自己的“返回堆栈”实现。

更多细节在这里: http://stuffleftatparty.com/android-app-will-eat-its-entire-memory-by-design

关于android - 删除 OLDEST 提交的返回堆栈 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42648685/

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