您好我正在从在线服务器获取ListView
的数据,如果用户在线,则显示为正常。如何显示从在线http服务器检索到的离线数据
但我想在离线模式下显示ListView
数据也意味着它必须显示用户在线时检索到的数据。
示例:如果从在线服务器检索到10条记录,并且在用户在线时显示在ListView
中。 现在,如果用户离线,那么ListView
应显示先前检索到的10条记录,直到用户上线。
最好的例子是Facebook,它也显示离线模式的帖子。
在此先感谢。
您好我正在从在线服务器获取ListView
的数据,如果用户在线,则显示为正常。如何显示从在线http服务器检索到的离线数据
但我想在离线模式下显示ListView
数据也意味着它必须显示用户在线时检索到的数据。
示例:如果从在线服务器检索到10条记录,并且在用户在线时显示在ListView
中。 现在,如果用户离线,那么ListView
应显示先前检索到的10条记录,直到用户上线。
最好的例子是Facebook,它也显示离线模式的帖子。
在此先感谢。
我觉得你应该请按以下步骤:
当用户来到这个Activity(其中有ListView控件)
路线从您的数据库中的所有记录,并添加到您的ListView,向用户显示这些本地记录(用户在线时已加载,或者第一次没有用户记录)。
创建的AsyncTask打电话给你的API,并从服务器获取记录,这些记录添加到数据库
列表视图reloadData(获得再次数据库中的记录),以显示新的记录,以用户在的AsyncTask onPostExecute功能
我希望这些可以帮助ü,
最好的问候
谢谢,我应该需要为此创建本地数据库 –
当然,你需要本地数据库 – Vaycent
我的建议是保存在共享prefere数据/ JSON nces,当你在线从服务器获取json时,以及脱机时从共享首选项获取json,所以你不必更改其他代码。
if(online)
{
// call http server and get json string
// save this json string in shared preference
}
else{
//
// check if shared pre contains data (not null) and get data from local shared pref
}
//进一步代码是相同
哪个更好,天气本地sqlite数据库或共享prefrences –
取决于你的使用,如果你只想在脱机模式下显示数据,而不想有任何与数据库相关的操作,那么我的视图是使用共享首选项因为它使用更少的内存,速度更快,而且代码也更少,但是如果您的需要与数据库相关,那么Sqlite是很好的 –
欢迎您 请upvote并验证我的答案 –
您使用的数据库联机? – Stefan
你如何知道用户是在线还是离线? – CodeWalker
不,我不使用数据库...我从谷歌应用程序引擎服务器 –