Android 如何显示从联机http服务器检索的脱机数据

Android 如何显示从联机http服务器检索的脱机数据,android,listview,Android,Listview,您好,我正在从在线服务器获取ListView的数据,如果用户在线,该服务器将显示良好 但是我想在脱机模式下显示ListView数据,这意味着它必须显示用户联机时检索到的数据 示例:当用户联机时,如果从联机服务器检索到10条记录并显示在ListView中。 现在,如果用户脱机,则ListView应显示之前检索到的10条记录,直到用户联机 最好的例子是Facebook,它也以离线模式显示帖子 提前谢谢。我想你应该参考以下步骤: 当用户访问此活动(其中包含listView)时 从数据库中获取所有记录并

您好,我正在从在线服务器获取
ListView
的数据,如果用户在线,该服务器将显示良好

但是我想在脱机模式下显示
ListView
数据,这意味着它必须显示用户联机时检索到的数据

示例:当用户联机时,如果从联机服务器检索到10条记录并显示在
ListView
中。 现在,如果用户脱机,则
ListView
应显示之前检索到的10条记录,直到用户联机

最好的例子是Facebook,它也以离线模式显示帖子


提前谢谢。

我想你应该参考以下步骤:

当用户访问此活动(其中包含listView)时

  • 从数据库中获取所有记录并添加到listView中,向用户显示这些本地记录(用户联机时已加载,或者用户首次登录时没有记录)

  • 创建一个AsyncTask来调用API并从服务器获取记录,然后将这些记录添加到数据库中

  • listView在AsyncTask onPostExecute函数中重新加载数据(再次从数据库获取记录),以便向用户显示新记录

  • 我希望这些能帮助你,

    最好的问候

    我的建议是在共享首选项中保存数据/json,在线时从服务器获取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
    }
    

    //进一步的代码与联机中的代码相同

    您使用的是数据库吗?如何知道用户是联机还是脱机?不,我没有使用数据库。。。我正在从谷歌应用程序引擎检索server@CodeWalker我有逻辑来检查用户是在线还是离线…谢谢,我是否需要为此创建本地数据库哪个更好,本地sqlite数据库还是共享首选项取决于您的使用,如果您只想在脱机模式下显示数据,而不想执行任何与数据库相关的操作,那么我的视图就是使用共享首选项,因为它使用的内存更少、速度更快,而且代码也更少,但如果您的需要与数据库相关,那么Sqlite就很好了