1

所以基本上我已经更新了我的应用程序,从只使用 a 中的活动到tabBar使用. 你会认为没什么大不了的,我也是。通过我的所有测试,一切都完美无缺。然而,当我发布新版本时,我的用户开始抱怨并报告许多崩溃,其中片段在调用.SherlockFragmentssupportActionBargetSherlockActivity()

我已阅读有关此问题的信息,这是恢复不再附加到任何活动但由于某种原因仍在运行的实例状态和片段的问题。我还没有找到针对我的问题的特定解决方案(因为我使用 actionBar 来显示我的选项卡而不是 a ViewPager)。

现在我的问题是我是否可以简单地丢弃null调用时返回的这些片段getSherlockActivity()?因为它们不依附于任何活动,它们也不可见吗?

如果没有,我该如何解决这个问题?在创建它们之前,我已经在检查FragmentManager已经存在的片段,但这还不够。

请帮我!

4

1 回答 1

0

你不需要丢弃任何东西。所有必要的检查都需要在一个片段中完成。您应该尽量避免在调用 onAttach() 之前使用 getSherlockActivity()(因为它是在 onCreate() 之前调用的,这应该没有问题,但仍然如此)和调用 onDetach() 之后。

if (isAdded() && !isDetached())

或者

final SherlockActivity a = getSherlockActivity();
if (a != null)

可能工作正常。

于 2013-04-26T10:53:11.043 回答