Android定时http请求饥饿

Android定时http请求饥饿,android,multithreading,webview,Android,Multithreading,Webview,你好,我正在开发一个adroid应用程序,它使用std网络视图和chrome浏览器。 我需要每500毫秒向服务器执行一次http请求,但我发现线程不知何故被停止或延迟,调用到服务器的php会在请求时间内登录到我的数据库,在某个时间我没有收到任何请求,在我一次收到一堆请求后不久 是否在线程上执行任何锁定或休眠 我做了两次测试,一开始是由javascript执行的,有同样的问题,所以我将控制权移到了android线程上,以避免js出现问题,但即使是android应用程序中的线程也有同样的问题 我们发

你好,我正在开发一个adroid应用程序,它使用std网络视图和chrome浏览器。 我需要每500毫秒向服务器执行一次http请求,但我发现线程不知何故被停止或延迟,调用到服务器的php会在请求时间内登录到我的数据库,在某个时间我没有收到任何请求,在我一次收到一堆请求后不久

是否在线程上执行任何锁定或休眠

我做了两次测试,一开始是由javascript执行的,有同样的问题,所以我将控制权移到了android线程上,以避免js出现问题,但即使是android应用程序中的线程也有同样的问题

我们发现,如果我们移动平板电脑并强制页面旋转,应用程序将再次激活并重新开始工作

有什么想法吗

我不是直接开发android应用程序,我负责应用程序的web部分(服务器端应用程序和html+js)。所以我的android体验有点有限,我在网上搜索,没有找到任何东西可以帮助我的朋友解决这个问题


多亏了大家。

我敢打赌,代码中的计时逻辑有点不正确。500毫秒并不比许多3G和4G网络上可能看到的典型往返延迟多多少。如果代码没有正确地考虑到请求花费的时间比重复时间长的可能性,那么代码在等待时可能会出现错误越来越长


这里有一个类比:假设你应该每小时去一家商店。现在是1:00,你就要去商店。你意识到你需要在下一个2:00去商店。所以你去商店,然后回来。现在你需要等到2:00。但是如果已经是2:05,你就等得太久了。

我忘了说这个应用程序不会rks只能通过wifi连接,但可能会将超时时间提高到1秒shuold来解决问题?请求时间可能太长。奇怪的是,当我们使用类似结构的ajax发送请求时,wwe也会遇到同样的问题。我使用了setInterval(funct,500)funct检查了一个全局变量,它使用了一个信号量来确保一次不超过1个请求。听起来应该没问题。不幸的是,setInterval和setTimeout的问题已经被广泛报道,现在还不太清楚到底发生了什么。这就是为什么我们将控制发送给Android,(我必须说,使用std浏览器时,一切都能与那些定时ajax查询完美配合)。此时,我的js唯一要做的就是每隔xxx毫秒调用ANDROID函数,读取上次http请求后填充的var,然后var清空。.我的朋友现在正在测试网络,因为在不同的网络配置上,系统工作正常,即使线程上的SPlet时间为500毫秒。.希望他能修复此问题问题…明天晚上是重要的一天…:(所以wifi可能有一些问题。。。