如何检测房屋活动是否已从视图中暂停?

时间:2015-11-26 05:57:06

标签: android android-view

我需要检测每次创建View我所创建的活动是否已被推送到后台(即用户不再可见)。

我已经尝试覆盖onDetachedFromWindow(),但它没有带来我希望看到的结果,尽管它official docs说的是什么:

  

protected void onDetachedFromWindow()

     

当从窗口分离视图时调用此方法。 此时它不再有用于绘制的表面

我假设通过进入后台,View不再有用于绘制的表面(因为它现在由另一个View覆盖)。但结果并非如此。

还有其他方法可以达到这个目的吗?

2 个答案:

答案 0 :(得分:1)

在挖掘出View的文档后,我终于找到了解决方案。

被推到后台并不意味着视图将从窗口中分离出来。 (很可能,但不是你/你的用户触发活动更改的第二个。)

当您的视图被另一个视图覆盖时(例如,当您更改活动时)始终会调用的一种方法是onWindowFocusChanged()

您可以依赖此选项来取消订阅Rx Observables(就像我所做的那样)等等。

答案 1 :(得分:-1)

您需要覆盖活动上的onStop()方法。