1

如果我调用外部 Web 服务并且用户旋转设备,则 Activity 将重新启动(我知道您可以自己处理,但不建议这样做)。我知道我可以使用onRetainNonConfigurationInstance().

我的问题是 Activity 重新启动后机上网络 IO 会发生什么?它是否继续,它是被暂停还是被杀死?

我对 Android(iOS 用户)比较陌生,所以重新启动 Activity 很奇怪。

我们拨打的一些网络电话可能会重新启动,但检查购买不是其中之一。我该如何处理,以便购买仍然正常工作?假设我会使用Asynctask(尽管我意识到还有其他选择,例如Executors)。

4

2 回答 2

1

对于需要跨活动重启(例如购买)维护的网络调用,请考虑使用 aservice而不是在活动内部进行。

如果您的连接被定义为活动内的实例变量,它将在活动重新启动时被销毁/杀死。

另一种选择,但我不推荐,是实现一个application类并在那里维护你的连接,这样只要你的应用程序进程还活着,它就会一直存在。

于 2013-02-18T20:56:56.813 回答
0

您不应该在活动内部处理请求,除非它们足够简单以触发(即不需要响应)。常见的用例是您正在与要跨多个活动处理的 REST 接口进行交互。基本思想是向服务发出请求并让它为您调解连接。Google IO 2010 有一个很好的讲座,你可以听。

不推荐在一个类中实现这个功能Application,因为当你的应用程序在内存紧张的情况下被 Android 杀死时,你会得到奇怪的行为。

于 2013-02-18T21:09:16.013 回答