HarmonyOS鸿蒙Next应用开发实战-卡片信息持久化处理
HarmonyOS鸿蒙Next应用开发实战-卡片信息持久化处理
卡片开发中需要在卡片创建时将卡片的formId等信息存储起来,方便以后的刷新等操作,下面介绍卡片如何做持久化处理。
1 建立数据库和表
@Database(entities = {CardDataTable.class, Personal.class},version = 1)
public class MyCloudBase extends OrmDatabase {
@Override
public int getVersion() {
return 1;
}
@Override
public RdbOpenCallback getHelper() {
return null;
}
}
public class CardDataTable extends OrmObject {
@PrimaryKey(autoGenerate = true)
private Integer id; //必须是包装类
private long formId;
private String formName;
private int dismension; // set / get 操作
}
2.在卡片创建时进行数据保存已经删除时删除卡片信息
DatabaseHelper manager = new DatabaseHelper(this);
ormContext = manager.getOrmContext(DATABASE_NAME_ALIAS, DATABASE_NAME, MyCloudBase.class);
// 构造插入数据
CardDataTable cardDataTable = new CardDataTable();
cardDataTable.setFormId(formId);
cardDataTable.setFormName(formName);
cardDataTable.setDismension(dimension);
cardDataTable.setCardId(WidgetId);
HiLog.info(TAG, "存储卡片信息"+formId );
//存储卡片信息
if (ormContext.insert(cardDataTable)&&ormContext.flush()) {
HiLog.info(TAG, "存储卡片信息"+formId+"成功" );
}else
HiLog.info(TAG, "存储卡片信息"+formId+"失败" );
DatabaseHelper manager = new DatabaseHelper(this);
ormContext = manager.getOrmContext(DATABASE_NAME_ALIAS, DATABASE_NAME, MyCloudBase.class);
OrmPredicates ormPredicates = ormContext.where(CardDataTable.class).equalTo("formId", formId);
HiLog.info(TAG, "删除卡片信息"+formId);
if (ormContext.delete(ormPredicates)==0)
HiLog.info(TAG, "删除卡片信息"+formId+"错误:未找到数据");
else
HiLog.info(TAG, "删除卡片信息"+formId+"成功");
更多关于HarmonyOS鸿蒙Next应用开发实战-卡片信息持久化处理的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
楼主考虑把同类型出个合集吗?
更多关于HarmonyOS鸿蒙Next应用开发实战-卡片信息持久化处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
考虑的,我们正在创作书籍尼。这些实战的细节,通过论坛的方式汇总更方便大家使用。
不错的贴子,非常感谢
在HarmonyOS鸿蒙Next应用开发中,卡片信息的持久化处理通常涉及将卡片数据存储到本地数据库中,以便在应用重启或系统关闭后仍能保留数据。常用的方法是使用鸿蒙的DataAbility
或Preferences
进行数据存储。首先,通过Preferences
存储轻量级数据,如用户设置;对于复杂数据,可以使用DataAbility
结合SQLite进行管理。开发时,需在卡片组件中实现数据的读取与更新逻辑,确保数据同步与一致性。