onPause()方法在活动之间调用



我在应用程序中使用onPause((方法,这样当应用程序暂停时,用户就可以在我的聊天中"离线"。我发现它很有用。

但问题是,每次用户在活动之间导航时,该方法都会被调用一毫秒。这样,用户在活动A中是"在线"的,在活动B中是"联机"的,但在两者之间是"脱机"的。

因为我用绿点来描述在线用户,这很烦人,因为它每次都会变成灰色,然后又变成绿色。

有办法防止这种情况发生吗?

onPause活动生命周期的一部分,它与Activity所经历的不同状态有关——这与您的应用程序是否作为一个整体处于后台无关。以下是文档对它的看法

系统调用此方法作为用户正在离开您的活动(尽管这并不总是意味着活动正在被破坏(;它指示该活动不再在前景中(尽管如果用户处于多窗口模式,它可能仍然可见(。

有几种方法可以处理它-最简单的方法是在切换到活动B时设置navigating标志。然后onPause可以检查该标志,如果正在进行导航,则跳过将您设置为脱机。


我假设你的意思是,对于其他用户来说,这个点正在闪烁(因为如果你在活动之间切换,你就不会看到同一个View(-实际上,让应用程序发出一个";我在网上"无论如何,每隔一段时间ping一次。

这样,如果用户在一定时间后没有收到消息,他们可以将其设置为离线-这只是意味着,如果用户崩溃、网络中断或其他什么情况,他们不会因为没有发送"消息"而一直在线;我现在离线了"通过onPause的消息

最新更新