【问题标题】:FragmentActivity is lost after app is paused for a while应用暂停一段时间后 FragmentActivity 丢失
【发布时间】:2012-02-01 00:58:32
【问题描述】:

我在使用我一直在开发的 Android 应用程序时遇到了一些奇怪的行为,发生了以下情况:

  1. 我用了一段时间,运行良好,没有问题
  2. 我通过单击 android 主页按钮“暂停”应用程序
  3. 我在手机上使用了一些其他应用程序几分钟
  4. 我回到我的应用程序,它似乎处于一个非常奇怪的状态,FragmentActivity 丢失了,但最后显示的 Fragment 仍然显示。当我从 Fragment 调用“getActivity()”时,它返回 null,这会导致问题(因为我需要返回 FragmentActivity 的引用。

知道为什么应用程序暂停一段时间后 FragmentActivity 会丢失,我认为这是某种垃圾收集问题,但通常不会破坏整个应用程序而不仅仅是 FragmentActivity?

注意事项:

  1. 我正在使用兼容性库
  2. 我正在使用 viewpage 指示器(但我认为这与问题无关) - https://github.com/JakeWharton/Android-ViewPagerIndicator

注意:当我从清单中的活动元素中删除我的android:configChanges="orientation|keyboardHidden|screenSize" 并进行方向更改时,我也可以轻松地重现此问题。 所以我假设它不会在活动娱乐后保持视图状态。 onSaveInstanceState 和 onRestoreInstanceState 调用正常,并且在片段上设置了 setRetainInstance(true);,所以我不确定为什么会发生这种情况。

【问题讨论】:

  • 我目前遇到了这个确切的问题。你有没有找到任何解决办法?我也在使用没有 ViewPagerIndicator 的兼容性库,所以我认为我们可以排除 ViewPagerIndicator。
  • 不久前我做了一个狡猾的解决方法,因为我无法弄清楚。我刚刚使用 FLAG_ACTIVITY_CLEAR_TOP 标志重新启动了一个新活动,并在 onRestoreInstanceState 方法中完成了当前活动.. 我喜欢 antonyt 方法.. 我试一试。

标签: android mobile android-viewpager android-support-library


【解决方案1】:

您的问题似乎是 Maurycy 的问题 - 您拥有的片段引用与 ViewPager 使用的片段引用不同,因为 Android 重新创建了一些片段并让您脱离了循环。请看my answer他的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多