检测应用程序关闭与 Activity 或 DialogFragment 中的更改
Detect application close vs change in Activity or DialogFragment
我的应用程序生命周期似乎遇到了限制。
我有一个 activity,它使用 Google API。在某些时候,我与 API 建立了连接,它尝试连接。第一次尝试连接失败,因为我们还没有选择一个帐户并授权它。因此,Google SDK 启动 connectionResult.startResolutionForResult
- 一种基本上只显示帐户选择 DialogFragment 的方法。
当调用 SDK 方法时,它会在我的 Activity.
上触发 onPause
这是一个问题,因为我的 onPause
方法在 Google API 上调用了 disconnect()
(这是一种好的做法)。然后的问题是我 do 想在关闭 activity/application 时断开连接,但我 do 不想在我的时候开始断开连接'我正在解决帐户问题(在后台我正在重新尝试连接,一旦用户选择他们的 Google 帐户就会成功,似乎没有回调来检测它何时发生)
我缺少的这个拼图是什么?
理想情况是将 disconnect()
移动到 onStop()
根据 Activity 生命周期 documentation onStop()
将被调用,除了内存不足的情况(无论如何都不是理想情况)。我相信你应该没事。
但是无论如何,如果您希望在内存不足的情况下调用此 disconnect()
方法,那么您可能应该将此方法保留在 onPause()
中并使用布尔标志。打开对话框时将其设置为 true。当此布尔标志为真时,不要断开连接。不要忘记将它设置为 false 否则你永远不会断开连接
这是我能想到的两种解决方案。希望对你有帮助。
我的应用程序生命周期似乎遇到了限制。
我有一个 activity,它使用 Google API。在某些时候,我与 API 建立了连接,它尝试连接。第一次尝试连接失败,因为我们还没有选择一个帐户并授权它。因此,Google SDK 启动 connectionResult.startResolutionForResult
- 一种基本上只显示帐户选择 DialogFragment 的方法。
当调用 SDK 方法时,它会在我的 Activity.
上触发onPause
这是一个问题,因为我的 onPause
方法在 Google API 上调用了 disconnect()
(这是一种好的做法)。然后的问题是我 do 想在关闭 activity/application 时断开连接,但我 do 不想在我的时候开始断开连接'我正在解决帐户问题(在后台我正在重新尝试连接,一旦用户选择他们的 Google 帐户就会成功,似乎没有回调来检测它何时发生)
我缺少的这个拼图是什么?
理想情况是将 disconnect()
移动到 onStop()
根据 Activity 生命周期 documentation onStop()
将被调用,除了内存不足的情况(无论如何都不是理想情况)。我相信你应该没事。
但是无论如何,如果您希望在内存不足的情况下调用此 disconnect()
方法,那么您可能应该将此方法保留在 onPause()
中并使用布尔标志。打开对话框时将其设置为 true。当此布尔标志为真时,不要断开连接。不要忘记将它设置为 false 否则你永远不会断开连接
这是我能想到的两种解决方案。希望对你有帮助。