gpt4 book ai didi

android - 使用 GreenDAO 从缓存中清除数据

转载 作者:行者123 更新时间:2023-11-29 14:49:17 29 4
gpt4 key购买 nike

在我的应用中,有 4 个 Activity ,从 Activity 1 到 Activity 4。

数据库 创建发生在 Activity 1 中,值在 Activity 2、 Activity 3 等中更新。但是当我使用 finish() 从 Activity 3 回到 Activity 时activity 2,由于缓存的原因,它不会显示更新的值。(无法显示更新的值)

我试过 daosession.clear() ,但它没有清除数据。

那么如何使用 GreenDAO 清除旧缓存并重新加载数据。

在所有这些 Activity 中,我使用了单独的 session 。查看示例代码

假设当前 Activity 是 CaptureLocationDetails

public static CaptureLocationDetails getInstance()
{
return instance;
}

openHelper = new DevOpenHelper(MyApplication.getInstances());
//openHelper.openDatabase();
db = openHelper.getWritableDatabase();
daoMaster = new DaoMaster(db);

daoSession = daoMaster.newSession();



-----

----


daoSession.getUserDao().update(entity);

然后

GetMap 类(下一个 Activity )

DevOpenHelper openHelper = new DevOpenHelper(MyApplication.getInstances());
db = openHelper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();

----

 upPackLinear.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v)
{

//DaoSession.this.clear();


//daoSession.clear();
finish();

CaptureLocationDetails.getInstance().daoSession.clear();

}
});

但是当我返回到 CaptureLocationDetails 类时,它会从缓存中加载值。

最佳答案

您可以使用 2 种方法来完成。

1. startActivityForResult()方法

请按照以下步骤操作。不明白的可以查看this教程。

  1. 使用 startActivityForResult() 开始你的第二个 Activity
  2. 覆盖第一个Activity 中的onActivityResult()。在那里,清除数据库缓存并重新获取数据。
  3. finish() 调用第二个 Activity 之前,调用 setResult()

2. onResume()方法

  • 清除数据库缓存并在 onResume() 中加载数据。

  • 这样,每次 Activity 出现时,都会获取数据。它效率不高,因为每次您的 Activity 进入前台时,都会调用 onResume()

关于android - 使用 GreenDAO 从缓存中清除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890400/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com