我将数据从服务器加载到ListView以及我实现它的方式,当我按下后退按钮或Home Up按钮时,它会杀死视图,从而迫使应用程序再次从服务器重新加载数据在NEXT启动相同的视图。
我的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (item.getItemId()) {
case android.R.id.home:
//super.onBackPressed();
moveTaskToBack(true);
return true;
}
return super.onOptionsItemSelected(item);
}
我希望我的视图保留ListView及其数据,并且当用户从另一个视图返回到同一视图时仍然保持数据完整(无需在每次打开视图时刷新它)
如何修改代码才能实现此目的?我是否需要SQLite数据库才能同步数据?我已经看到像Instagram这样的应用程序使用“直接消息”视图和设置视图来执行此操作。
修改
只是在上一个问题中添加了另一个问题,即使在应用程序退出后,facebook和Instagram如何保留同步数据(新闻源项目)?当用户返回应用程序时,即使没有可用的互联网,该应用程序也会保留以前同步的项目。只是另一个问题。
答案 0 :(得分:3)
不要违反框架。按照你的建议方式做这件事就是进入android世界的老式桌面编程实践。不好的主意。
要正确地执行您想要的操作,您需要某种缓存,无论是在内存中(如在数据提供程序中具有从服务器获取的最新数据的数组/列表)还是本地数据库(sqlite,couchbase)。 ..)所以你不会产生往返服务器的费用。
如果您的数据非常不稳定,请不要打扰数据库,它们会让您的工作变得非常困难。另一方面,如果您的数据不变或几乎不变,本地数据库将为您提供非常好的性能。实现这样一个缓存的基本思想是首先查找它上面的数据,如果你没有找到数据则查询服务器,或者它太旧/无效(清除它)存储新数据并返回它。 / p>
我在移动设备上,所以我现在不能给你一个例子,抱歉。玩得开心。