我不确定“缓存”是否是正确使用的术语,但这是我的问题,在我的应用程序中,我有一个活动,它从 Internet 加载 JSON 数据,然后填充一个似乎工作正常的列表视图。
真正的问题是互联网连接松动时它开始显示空白屏幕,有什么办法可以继续显示之前生成的旧列表视图,以防没有互联网连接,并且只有在存在持久性的情况下才获取数据联系。
我知道如何查找是否有网络连接,所以请不要编写代码,我主要关心的是保存以前加载的列表视图并在未找到连接时显示它们。
我现在唯一能想到的就是使用本地 sqlite 数据库。
我不确定“缓存”是否是正确使用的术语,但这是我的问题,在我的应用程序中,我有一个活动,它从 Internet 加载 JSON 数据,然后填充一个似乎工作正常的列表视图。
真正的问题是互联网连接松动时它开始显示空白屏幕,有什么办法可以继续显示之前生成的旧列表视图,以防没有互联网连接,并且只有在存在持久性的情况下才获取数据联系。
我知道如何查找是否有网络连接,所以请不要编写代码,我主要关心的是保存以前加载的列表视图并在未找到连接时显示它们。
我现在唯一能想到的就是使用本地 sqlite 数据库。
onResume()
IF internet THEN request (AsyncTask?)
Validate response and build Model objects from JSON
IF objects are good THEN give objects to ListView adapter
这样,当且仅当您有互联网连接时,您的列表才会更新。
为什么是 onResume() 而不是 onCreate()?当您从另一个活动回来时,活动 onResume() 本身;)
对于用户友好的部分,我不知道您何时进行此“更新”,但请避免自己进行。操作栏(或菜单)可让用户在需要时更新数据。
对于用户友好的部分 II。如果您认为用户在更新时不能玩您的列表,请禁用该列表上的事件,或者,如果用户必须不做任何事情(您的应用程序要操作该列表中的对象),请使用进度对话框来通知你正在做某事的用户