安卓:处理服务器连续拉取的最佳方式



首先,我应该提到我是安卓系统的新手(在Java方面没有太多经验),所以对我来说很容易。

我正在制作一个应用程序,它可以不断地从服务器中提取数据,然后通过http发布请求返回数据。问题是,处理服务器实际拉取的最佳方式是什么?我应该使用AsyncTask还是创建另一个线程并让它在上面运行?有更好的方法吗?

我将每5分钟提取一次数据。(我知道这会很快耗尽电池,我肯定应该使用Androids C2DM框架。但我以前没有这方面的经验,而且我已经到了最后期限,所以这将不得不做,直到我有时间学习如何实现它。)

我很感激你的建议!

作为C2DM的替代方案,您可以在设备和服务器之间进行持久TCP连接。然后,每5分钟,你的服务器就可以向设备推一次挠痒痒。一旦被挠痒痒,设备就可以通过Httppost请求信息。

下面是一些关于如何做到这一点的示例代码。即使在应用程序退出后,连接仍在后台线程中保持打开

创建和管理持久TCP套接字:http://openmobster.googlecode.com/svn/trunk/cloud/android/connection/src/main/java/org/openmobster/core/mobileCloud/android/module/connection/NotificationListener.java

全面披露:我是OpenMobster的总工程师,我写了这段代码。如果你需要,请随意使用你喜欢的东西,或者只是想一个主意

感谢

你需要在后台提取数据吗(即使你的应用程序没有"打开",安卓设备正在休眠)?我想这就是你想要的,因为你提到了C2DM。如果是的话。流行语是AlarmManager(带重复时间)/BroadCastReceiver,可能还有通知用户的NotificationManager。使用AlarmManager,您可以安排事件(每5分钟一次),使用BroadcastReceiver,您可以每5分钟接收这些事件并执行您想执行的操作:)

最新更新