“不要保留活动” - 当应用程序恢复时,片段仅可见一秒钟

Posted

技术标签:

【中文标题】“不要保留活动” - 当应用程序恢复时,片段仅可见一秒钟【英文标题】:"Don't keep activities" - when app is restored the fragment is visible only for a second 【发布时间】:2015-01-05 17:55:01 【问题描述】:

我有一个使用片段的应用。如果我启用“不保留活动”,然后输入活动并输入片段,然后使用主页按钮最小化并重新打开应用程序,则会发生以下行为 - 应用程序在打开的片段上恢复大约半秒,然后立即片段关闭并显示应用程序的主要活动。

对于这种情况,我是否需要为片段管理器执行某种恢复状态?另外,为什么片段显示半秒钟然后关闭?

MainActivity 的代码:

myFragment = (MyFragment) MyFragment.create(id);
            getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.slide_in_right,     R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
                //.hide(getMainFragment())
                .add(R.id.content, MyFragment.create(id), MY_FRAGMENT_TAG)
                .addToBackStack(null)
                .commit();
        setDrawerIndicatorEnabled(false);

【问题讨论】:

除非您编辑您的问题并发布最少的代码来重现该行为,否则任何人都不太可能为您提供帮助。 谢谢。唯一的问题是要发布哪些代码。这两个活动(主要+片段)都很长,我不清楚什么是相关的。我想知道这是否是使用涉及片段的“不保留活动”的一般“已知问题” - 而不是针对我的案例的特定问题 【参考方案1】:

当您启用“不保持活动”时,片段生命周期的行为会有所不同。

带有片段的正常活动流

MainActivity onCreate
          Fragment onAttach
          Fragment onCreate
          Fragment onCreateView
          Fragment onViewCreated
          Fragment onActivityCreated 
MainActivity onStart
          Fragment onStart

但是当您启用“不保留活动”并按下主页按钮时,生命周期的行为与

   Fragment onAttach
          Fragment onCreate
MainActivity onCreate
          Fragment onCreateView
          Fragment onViewCreated
          Fragment onActivityCreated
MainActivity onStart
          Fragment onStart

所以,完全取决于你写的逻辑。

发布您的 MainActivity 和 Fragment 代码。以便任何人都可以提供帮助。

查看此帖子Fragment Lifecycle wrt Activity

【讨论】:

以上是关于“不要保留活动” - 当应用程序恢复时,片段仅可见一秒钟的主要内容,如果未能解决你的问题,请参考以下文章

当片段被替换并且再次可见时回调

当使用 QWSSERVER::SetCursorVisible(false) 不可见时如何恢复我的鼠标指针?

隐藏子屏幕/片段的android底部导航视图

从另一个片段导航后,ViewPager在返回时不可见

如何确定 Fragment 何时在 ViewPager 中可见

Android阻止恢复活动