在 onPause() 中进行 API 调用?

Making an API call in onPause()?

我的应用程序中有一个屏幕显示来自 API 的数据。当用户在屏幕上时,他们可以重新排序数据,我想将其保留在服务器上。

我不想在用户每次重新订购商品时都打一个 API 电话,我只想在他们离开屏幕时打一个电话。

最好的方法是什么?我最好将它放在 onPause() 中,但我不确定是否可以确保始终发送 API 调用。

谢谢!

Post HoneyComb onPause() 总是在 Activity 被杀死之前被调用。有关详细信息,请参阅 Activity 参考的生命周期部分。

虽然 onPause 总是会被调用,但它不仅会在用户离开屏幕时被调用,有时也会在他们恢复屏幕时被调用。

运行 I/O 对这些事件进行大量操作也不是一个很好的设计模式,并且您在获取响应以验证 API 确实有效方面也会遇到很多问题正确。

我建议您使用启动的服务作为与服务器和 APIs 的出站联系点,因为服务也有自己的进程,即使您的应用程序不存在,它也会存在(但你仍然需要使用 bg 线程实现。因为如果你不这样做,它会影响 UI 线程)。

我和几个朋友为此写了一个很好的例子,你仍然可以找到它 here

祝你好运。