如果我调用外部Web服务并且用户旋转设备,则Activity将重新启动(我知道您可以自己处理它,但不建议这样做)。我知道我可以使用onRetainNonConfigurationInstance()
保留状态。
我遇到的问题是活动重启后飞行网络IO会发生什么?是继续,是暂停还是被杀?
我对Android(iOS人员)比较陌生,所以重启的Activity很奇怪。
我们制作的一些网络电话可以重新启动,但是购买商品不是其中之一。我如何处理这个以便购买仍然正常?假设我会使用Asynctask
(虽然我意识到还有其他选择,例如Executors
)。
答案 0 :(得分:1)
对于需要跨活动重启(例如购买)维护的网络电话,请考虑使用service
而不是在活动中进行此操作。
如果你的连接被定义为活动中的实例变量,它将在活动重启时被销毁/杀死。
另一种选择,但我不建议,是实现一个application
类并保持你的连接,只要你的应用程序进程存活,它就会持久化。
答案 1 :(得分:0)
您不应该处理活动内部的请求,除非它们足够简单(即不需要响应)。常见用例是您要与要在多个活动中处理的REST接口进行交互。基本思想是向服务发出请求并让它为您调解连接。 Google IO 2010有一个很好的lecture,你可以听。
不建议在Application
类中实现功能,因为当内存紧张时,Android会杀死您的应用时会出现奇怪的行为。