在onPause()中进行API调用?

时间:2015-04-16 14:26:18

标签: android android-lifecycle

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

每次用户重新排序项目时,我都不想进行API调用,而是在离开屏幕时只打一个电话。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

虽然onPause始终被调用,但它不仅在用户离开屏幕时被调用,而且有时在他们恢复时也被调用。

对这些事件运行I / O繁重操作也不是一个很好的设计模式,并且在获取响应以验证API确实正常工作时也会遇到很多问题。

我建议您使用已启动的服务作为与服务器和API的联系出站点,并且由于服务也有自己的进程,即使您的应用程序不存在,它也将处于活动状态(但您仍需要使用一个bg线程impl。因为它会影响UI线程,如果你不这样做。)

有几个朋友,我已经写了一个很好的例子,你可以找到它here

古德勒克。

答案 1 :(得分:0)

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