gpt4 book ai didi

android - 在内存不足时 Activity 终止后重新创建 fragment

转载 作者:行者123 更新时间:2023-11-29 17:52:41 28 4
gpt4 key购买 nike

我有一个 Activity,里面有一个 ViewPager。当 Activity 创建时,将执行 asyncTask,当任务完成时,将使用结果数据创建 Fragment。(重要说明:没有此数据 Fragment创建 View 会崩溃,因为它明确需要该数据)

现在 Fragment 创建后,我返回主屏幕,打开另一个应用程序等等,并创建内存不足的情况。由于内存不足,我的 Activity 被终止了。

现在我打开任务管理器并再次点击我的应用。

Android 尝试将所有内容重新显示在屏幕上。由于所有 Activity 都被杀死,数据也丢失了,但它仍然尝试重新创建 fragment ,尽管没有数据并且我的应用程序崩溃了。

我能做什么?...我有两个解决方案(至少是理论上的解决方案)

  1. 防止 Activity 在恢复时重启(我该怎么做????)

  2. 防止 fragment 创建 View 使用数据,除非它存在

好吧,我确实实现了第二个解决方案。所以应用程序一开始不会崩溃,因为“没有数据存在”是手持的。但是我意识到 ViewPager 也与 fragment 断开连接,因为井 Activity 被杀死了。所以我无法从 Activity 中返回 fragment 。

最佳答案

多年后......遇到同样的问题,一个残酷的解决方案是在调用 super 之前将 savedInstanceSate 设置为 null :

@Override
protected void onCreate(Bundle savedInstanceState) {
savedInstanceState = null;
super.onCreate(savedInstanceState);
}

关于android - 在内存不足时 Activity 终止后重新创建 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21891848/

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