2015-09-06 69 views
0

我有一个应用程序,需要立即启动数据传输,所以我希望能够保持数据天线和wifi天线活着(不睡觉)。我不知道:Android保持数据天线活着

1)确保24/7天线杀死设备硬件快得多?
2)这样做的最佳方式是什么,但不会耗尽太多的带宽(数据服务每月只有几兆带宽)。例如。每隔X秒ping我的服务器?

回答

0

是的,保持“天线在”(您的意思是蜂窝和WiFi接口)在使用时会耗尽电池。您需要编写应用程序以避免不断耗尽电池。如果你经常访问网络,那么你也咀嚼用户的蜂窝数据计划,这可能是有限的。

要成为一个好公民,您需要确保您的应用尽可能少地使用网络。当然有几种方法可以做到这一点。我认为最好的方法是让外部服务器通过数据更新向您的应用发送推送通知,以避免轮询。设置起来有点复杂,但非常值得。

如果您更喜欢投票,有几个选项。

您可以使用AlarmManager设置触发网络代码的单个或循环报警,无论您的应用程序是否正在运行。当您在广播接收器的onReceive()方法中处理代码时,它使网络接口保持活动状态。

或者,您可以实现只在您的应用运行时才能运行的TimerTask。另一种方法是实施Handler并以重复间隔发布Runnable任务。

我也非常喜欢RxJava这是非常强大的,但可能矫枉过正你正在做的事情。有了它,您可以使用间隔可观察来设置反应序列链,以定期调用您的网络代码。

当您等待您的请求返回时,您可以在界面上获取WakeLock,但如果您不释放请求,这通常是过度杀毒和危险的。

对不起,我没有提供示例,因为有很多选项。