我开发了一个应用程序,可以通过HttpPost频繁地将数据发送到Internet。该应用程序分为两部分:
1)无限运行的服务, 2)当用户可以设置一些数据连接的东西时的活动。
服务属性:
1)作为前台服务运行, 2)涉及一个WakeLock(设置标志PARTIAL_WAKE_LOC)。
活动连接到服务,当用户选择“开始”按钮时(在设置一些特定选项之后),它应该每10秒向服务器发送一次数据。如果用户没有“点击”按钮并点击“返回”,则活动结束,服务也是如此。然后,在选择“开始”之后,服务启动(调用startService()),这意味着它不会在活动后销毁并连续运行,直到用户选择“Stop”,调用stopService()。
该解决方案运行良好,但根据手机型号,它有时会在几个小时的工作后停止发送任何内容,因为数据传输已经消失。即使是浏览器也无法显示任何页面。有时打开和关闭“使用数据包数据”会有所帮助,但通常不会。重新启动手机始终可以解决问题。最奇怪的是浏览器可以整天工作而不会中断。我已经准备了一个带有JS代码的特殊页面,它强制浏览器每10秒钟(使用AJAX)请求一些数据,并且它可以在很长时间内完美运行。当我启动我的应用程序时,它会发送数据,比方说2-3个小时没有任何问题,突然互联网连接关闭。
我不知道导致这些问题的原因。任何帮助,将不胜感激。我没有显示代码,因为它很长。
提前谢谢!
修改
导致问题的设备是Samsung Galaxy Pocket GT-S5300和Android 2.3.6(内核版本2.6.35.7)。