我的应用程序中有很少的网络活动,例如数据库操作,发送/接收文件等。我如何限制这些活动的执行时间?例如,如果到服务器的文件传输操作在1分钟内未完成,那么我想中止该操作并继续执行剩余的代码。你能为此提供一些参考吗?如何在android中限制网络活动的执行时间?
1
A
回答
1
根据http客户端的类型,您可以设置操作超时并处理超时异常。
这里是很好的解释了如何处理超时的OkHttp:你在你的HTTP客户端更喜欢,像例如在上述Retrofit and OkHttpClient, catch connection timeout in failure method
设置超时时间:超时异常
client.setConnectTimeout(10, TimeUnit.SECONDS); client.setReadTimeout(30, TimeUnit.SECONDS);
集处理器(取决于你的http客户端)。
如果您需要自定义操作超时处理,您可以用执行人跟踪如果后台操作完成与否,这样你就可以实现通用的解决方案来扩展与超时任何后台操作,想法很有趣的解释可以发现这里:ExecutorService that interrupts tasks after a timeout
快乐编码!
0
你可以采取下面的代码的帮助:
HttpURLConnection urlc = (HttpURLConnection) urlConnect.openConnection();
urlc.setConnectTimeout(1000); //milliseconds
urlc.setReadTimeout(1000); //milliseconds
根据Java手册:
connectTimeout
设置一个指定的超时值,以毫秒为单位,使用当打开通往此URLConnection引用的资源的通信链接时。如果在建立连接之前超时到期,则会引发java.net.SocketTimeoutException。超时为零被解释为无限超时。
readTimeout
将读超时设置为指定的超时,以毫秒为单位。非零值指定在连接建立到资源时从输入流读取时的超时时间。如果在有数据可供读取之前超时到期,则会引发java.net.SocketTimeoutException。超时为零被解释为无限超时。
0
我会建议使用okHttp作为okHttp从Android 4.4强大HttpURLConnection。 这里是代码 - >
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(15, TimeUnit.SECONDS); // connect timeout
client.setReadTimeout(15, TimeUnit.SECONDS); // socket timeout
相关问题
- 1. Android - 活动之间的共享网络
- 2. scraperwiki如何限制执行时间?
- 3. didReceiveNotificationRequest:withContentHandler - 执行时间限制?
- 4. 如何在Ruby/Rails/Passenger/Nginx中设置执行时间限制?
- 5. 如何在Android中执行搜索时完成当前活动?
- 6. 如何限制MySQL中的执行时间?
- 7. 如何限制SQL Server中的查询执行时间?
- 8. 如何限制IIS中Perl脚本的执行时间?
- 9. 如何强制执行`exec()`调用的时间限制?
- 10. 限制php的执行时间
- 11. “真正” 的执行时间限制
- 12. 执行Java函数的时间限制
- 13. 在android如何更新活动,如果任何网络变化
- 14. Android如何强制执行权限?
- 15. 如何在执行(phing)部署时“锁定”活动网站
- 16. android-如何限制时间的进程
- 17. 如何在AsyncTask中执行网络操作 - Android
- 18. 如何使用活动检查Android中的网络连接性
- 19. 限制在java中的方法的执行时间
- 20. 如何限制执行时间的PHP脚本
- 21. 如何限制WCF服务的请求执行时间?
- 22. 如何限制CLI PHP脚本的执行时间
- 23. 如何限制方法的实际执行时间
- 24. node.js:具有时间间隔的货币限制并行执行(速率限制)
- 25. 如何在限制权限的同时执行sp_send_dbmail
- 26. 限制执行时间在java中的线程样本
- 27. 网络执行
- 28. 限制SharePoint定时器作业中的执行时间?
- 29. 强制活动在Android 1.5中运行风景中的活动
- 30. 如何在使用子进程时限制程序的执行时间?