当前位置: 首页 > 知识库问答 >
问题:

Android:Looper vs AlarmManager

荣波
2023-03-14

因此,谁能请解释我,哪一个是最好的持续网络更新和为什么。

共有1个答案

姚嘉容
2023-03-14

哪一个是最好的连续/时间的服务器更新?

取决于您的应用程序当时是否在后台/前台运行:

假设您通过处理程序将runnable排定到15分钟后。
如果用户将“关闭”所有正在运行的活动,那么系统很可能会关闭您的进程,如果它在一段时间后没有运行任何前台服务/活动以回收内存。在这种情况下--您的runnable将永远不会被执行。
如果您想要连续轮询服务器更新,甚至当用户离开您的应用程序时--这个选项显然对您不利。如果您选择这样更新服务器--至少从已启动的service上下文进行更新--这样即使用户从一个屏幕导航到另一个屏幕,您的处理程序引用也将保持分配状态...

用户可能有10-20个应用程序(如Facebook/Twitter/WhattSAP/Viber/Google+...)安装在他的设备上,从服务器获取更新。想象一下,每个人在不同的时间间隔内醒来,打开互联网连接,消耗大量宝贵的电池寿命和带宽。太疯狂了!您的设备将永远不会“睡眠”,所有进程将一直打开,互联网蜂窝无线传输也。电池会很快地富到0%!

正确的想法是使用GCM API。它还需要服务器端的实现,但一般的想法是,当有新数据时唤醒应用程序的责任转移到服务器端,因此,android应用程序不需要轮询更新。当服务器通知您时,它就会得到通知(如果进程不活动,它就会被唤醒)。如果你想知道--这就是它的工作原理--推送通知技术在Android上是如何工作的呢?

我建议您阅读有关它的内容-http://developer.android.com/google/gcm/index.html

 类似资料:

相关问答

相关文章

相关阅读