我正在实现一个android应用程序,我不知道如何解决这个问题:当用户点击更新按钮时,我想连接到我的服务器,并检查数据是否有任何更新,如果有是,我想从服务器获取数据并更新数据库。我是否应该使用xml结构来检查并从服务器获取更新,或者是否有更智能的方法来实现这一点?如何从服务器获取数据并使用它更新数据库?
4
A
回答
5
是的,有一个更聪明的方法来做到这一点,但它需要在服务器和客户端的一些工作。这就是它的工作原理:所有数据都应该可以用JSON或XML格式下载(我宁愿选择JSON)。所以,你会在服务器上有这样的东西:http://example.com/resource.json。为了知道是否有新版本的数据,你可以做的是向HTTP响应添加一个头部版本(这样你就不必下载和解析整个资源,以便知道是否有新版本)。
为了让您检查这些标题,你就会有这样的事情:
URLConnection urlConnection = null;
try {
urlConnection = url.openConnection();
urlConnection.connect();
String currentVersionHeader = urlConnection.getHeaderField("your-version-header");
if(currentVersionHeader == null) {
currentVersionHeader = "-1";
}
int version = Long.parseLong(currentVersionHeader);
// then you compare with the old version
if(oldVersion < version){
// download the data
}
} catch (Exception e) {}
下载和解析JSON资源是一些已经被处理,你会发现一堆教程和参考在谷歌和这里。
你没有提供服务器端的细节(是PHP?Java?.NET?),所以我也不会给你详细说明如何实现/添加版本头。我只是根据自己的经验向你解释了做这种事情的最好方法是什么。
相关问题
- 1. Android PushNotification IntentService并调用AsyncTask函数从服务器数据库获取数据并更新sqlite数据库
- 2. 如何从XML中获取数据并更新数据库表
- 3. 从数据库更新数据从数据库获取数据
- 4. 当服务器数据库更新时更新sqlite数据库
- 5. 从服务器MySql数据库更新本地服务器MySql数据库
- 6. 如何使用Python访问并从数据库获取数据?
- 7. Php Web服务。如何从数据库中获取数据?
- 8. 提取数据时从服务器获取数据并刷新UI?
- 9. 如何仅从Firebase数据库获取更新的子数据?
- 10. 如何获取数据从服务器的服务器地址
- 11. 从asynctask服务器获取JSON并存储在数据库中
- 12. Silverlight使用WCF RIA服务从数据库获取最新版本的数据
- 13. 从服务器获取数据,并加载使用Android
- 14. 如何从gcm服务器响应更新数据库表
- 15. 如何从服务器更新数据库
- 16. 如何将数据库数据发送到MySQL服务器以更新服务器数据库
- 17. 如何使用服务器数据库?
- 18. 如何自动更新数据库服务器上的mysql数据库更改?
- 19. Sencha Touch Sync并从服务器获取新数据
- 20. 使用JSON xmlHttprequest从Web服务器读取数据库并显示数据?
- 21. 如何从服务器获取数据,并在sqlite的
- 22. 我如何从Excel中使用SQL服务器获取数据
- 23. 如何使用NSMutableURLRequest从网络服务器获取数据
- 24. 如何使用JSON,JQuery和AJAX从服务器获取数据?
- 25. 如何从服务器提取数据后更新recyclerview?
- 26. 当我从服务器获取数据时如何刷新CVCalendar?
- 27. 你将如何处理从服务器获取新数据?
- 28. 如何更改ListView直接从服务器获取数据?
- 29. 如何在从服务器获取数据后更改活动
- 30. iPhone/Sqlite - 如何只从服务器获取更改的数据?
感谢您的详细解答。服务器端不是问题,我正在寻找主要想法,我现在得到它。再次感谢。 – dirhem 2010-09-20 22:56:54