如果没有Internet,getaddrinfo()会阻止android中的应用程序

时间:2014-08-25 04:24:09

标签: android c++ android-ndk

我在我的Android应用程序中使用 getaddrinfo() linux API(在C ++ NDK中)。除了一个案例外,一切正常。

如果Android系统中没有互联网连接,此API会阻止该应用程序超过50秒。

这个问题有解决方法吗?

很多帖子都建议在一个帖子中使用这个API。这是唯一的解决方案吗?我想可能有一个简单或替代的解决方案。

2 个答案:

答案 0 :(得分:0)

  1. 尝试使用连接超时作为小于50秒的值。
  2. 此外,您可以在制作任何API之前检查网络。如果没有网络则不继续。如果在执行API时网络消失,连接超时将会出现。

答案 1 :(得分:0)

getaddrinfo()是一个阻止API,所以这是预期的。您可能希望在工作线程中执行任务和/或查看可以执行异步查询的getaddrinfo_a()。