Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:定期(在后台)打开tcp连接约2分钟的最有效方法_Java_Android_Tcp_Background - Fatal编程技术网

Java Android:定期(在后台)打开tcp连接约2分钟的最有效方法

Java Android:定期(在后台)打开tcp连接约2分钟的最有效方法,java,android,tcp,background,Java,Android,Tcp,Background,我正在开发一个Android应用程序,它每隔5-10分钟定期向某些服务器发送依赖于用户的请求。服务器执行繁重的计算,并在约2分钟后发送响应/数据 我想知道最有效的方法是什么——主要是在电池寿命方面 我正在编写应用程序,现在,我计划将应用程序运行为一个定期打开TCP连接到服务器的服务,然后等待响应,只需保持TCP连接打开,然后关闭连接。 我相信有更好的方法来做到这一点1。在后台定期运行作业。2.管理仅在2分钟后才有来自服务器的客户端请求和响应的tcp连接。。我在互联网上搜索了这些东西,但没有找到主

我正在开发一个Android应用程序,它每隔5-10分钟定期向某些服务器发送依赖于用户的请求。服务器执行繁重的计算,并在约2分钟后发送响应/数据

我想知道最有效的方法是什么——主要是在电池寿命方面

我正在编写应用程序,现在,我计划将应用程序运行为一个定期打开TCP连接到服务器的服务,然后等待响应,只需保持TCP连接打开,然后关闭连接。 我相信有更好的方法来做到这一点1。在后台定期运行作业。2.管理仅在2分钟后才有来自服务器的客户端请求和响应的tcp连接。。我在互联网上搜索了这些东西,但没有找到主要关于tcp连接管理问题的案例。 同样,我的主要兴趣是电池寿命

我必须提到的是,在我的例子中,没有选择使用像GCM这样的解决方案——客户端发送请求,服务器发送通知,客户端提取响应。因此,我相信我必须使用tcp或udp连接,我只想知道如何最有效地做到这一点

有什么建议吗


顺便问一下,这种应用程序在电池寿命方面的成本是多少?

您可能需要阅读android文章优化下载以实现高效的网络访问

每5-10分钟发送一次数据会耗尽电池电量,等待2分钟回答会使问题恶化,尤其是在频率为5分钟的情况下,这意味着基本上设备的无线电将一直处于使用状态

考虑将密集计算移到设备上。我认为在这种情况下是有道理的。或者考虑不经常发送数据。

在任何情况下,不要让连接保持打开状态2分钟。如果您确实想坚持使用当前的解决方案,请让服务器立即返回一个令牌,并在~2分钟后使用该令牌重新查询服务器


除了电池耗电外,通过保持收音机处于活动状态,您的服务将防止设备进入睡眠状态,从而进一步增加电池耗电。也许你需要这样来收集你想要发送给你的服务器的数据,但是其他的考虑使用报警器让你的服务在设备的默认唤醒时间发送数据。p> 推送通知确实是正确的方法。您应该尝试将其作为一个选项。问题是我无法控制服务器。现在我必须按照服务器的规则来运行,令牌选项是不可能的。如果令牌选项将是一种方式,考虑自己注入一个简单的中间人服务器。该服务器将能够返回令牌,并且在等待几分钟后不会出现问题。顺便问一下,如果插座必须等待这么长时间,它们不会超时吗?