当前位置: 首页 > 知识库问答 >
问题:

当我的应用程序被多次最小化时,不调用片断onPause()

公良玺
2023-03-14

我在viewpager中有片段。当我最小化应用程序时,它将对ViewPager中的片段调用onpause(),然后当我恢复应用程序时,它将调用onresume()。但当我再次将其最小化时,onpause()不再被调用。
您对此有什么想法吗?

共有1个答案

楚修为
2023-03-14

我想我已经找到问题的原因了。在父片段的onstop()上,他们已经将以下代码:

try {
        Field childFragmentManager = Fragment.class
                .getDeclaredField("mChildFragmentManager");
        childFragmentManager.setAccessible(true);
        childFragmentManager.set(this, null);
    } catch (NoSuchFieldException e) {
        throw new RuntimeException(e);
    } catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    }

我不知道这样做的目的,但它似乎是支持嵌套片段的bug的一个变通方法。使用带有ViewPager的Tab时,收到错误“java.lang.IllegalStateException Activity has been destromed”

在上面的链接中,它建议在ondetach()上添加此代码。但似乎他们错误地将其放在了onstop()上。

这很吓人,因为我只是支持这个项目,而我并不是一开始创造它的人。我只希望这不会有任何副作用。非常感谢给出答案/建议的每一个人。我很感激。:)

 类似资料:
  • 我有一个代码,在那里我处理多个线程。一个线程等待它所依赖的其他一些线程的执行。 线程的运行代码如下所示 很少有其他线程等待这个线程在相同的方法中完成执行,如图所示,通过调用join()来执行run()。 假设这个线程依赖于另外三个线程,它正在等待它们在thread.join()中完成执行。即nameList大小为3,但此线程也执行了3次操作。它在for循环的外部。 我用另一种方法启动这个线程,比如

  • a.cs文件: 公共活动MyEventHandler Ontagload; 私有void btnLoad_Click(object sender,EventArgs e){if(OnTagLoad!=null){OnTagLoad(sender,e,runTimeData);}} 每当我单击Load按钮时,事件应该只触发一次。我们如何在windows窗体中实现这一点。 感谢你的帮助。

  • 在android API 29模拟器上运行,如果您最小化一个应用程序并查看应用程序的最小化列表,它们每个都有一个与其相关联的图标: 在我的例子中,在卡片的顶部有一个与google chrome相关联的圆形chrome图标。 我的问题是:你如何设置这个图标,它叫什么,什么时候引入的(我基本上是在找关于它的文档) 非常感谢任何帮助

  • 我正在开发一个追踪用户位置的应用程序。我已经实现了一个定制服务来管理位置请求部分,它在每个活动中都能正常工作。该服务甚至出现在“运行服务”设置面板中。 当我最小化应用程序或锁定屏幕时,问题就开始了。 我想要的效果是,即使应用程序被最小化或屏幕被锁定,也能继续接收位置更新,但当用户从最近的应用程序中滑动应用程序时,停止与应用程序相关的一切(确切地说,谷歌地图或Waze的行为方式-当应用程序显示通知时

  • 当我启动这个新游戏时,激活我的应用程序崩溃,但它只在我初始化