You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAP Cloud SDK for Android如何读取本地离线实体列表数据?

SAP Cloud SDK for Android 本地读取Products实体列表方案

1. 关于你提到的demoService对应实例说明

官方文档里的demoService就是SAP Cloud SDK向导根据你接入的OData服务自动生成的自定义数据服务类单例实例:

  • 类名一般和你创建项目时填写的OData服务名一致,继承自com.sap.cloud.mobile.odata.DataService
  • 该实例默认在向导生成的全局仓储类(通常命名为ServiceRepository)中已经完成初始化,可直接调用全局单例获取,不需要你自己重新实例化

2. 本地读取Products列表代码示例

因为你已经开启了离线功能,默认查询请求会自动路由到本地离线存储,不需要额外配置路由逻辑:

// 替换为你项目中实际的自定义数据服务类名、单例获取方法
CustomODataService service = ServiceRepository.getInstance().getCustomODataService();

// 构造查询条件,支持排序、过滤、分页等操作
DataQuery query = new DataQuery()
        .orderBy(Products.NAME, SortOrder.ASCENDING)
        .filter(Products.PRICE.greaterThan(100)) // 按需添加过滤条件,不需要可删除
        .top(50); // 按需添加分页参数,不需要可删除

// 异步查询本地数据,禁止在主线程执行数据库操作
service.getProductsAsync(query, productList -> {
    // 查询成功,将数据返回主线程更新列表UI
    runOnUiThread(() -> {
        yourListAdapter.setData(productList);
        yourListAdapter.notifyDataSetChanged();
    });
}, error -> {
    // 自定义查询错误处理逻辑
    Log.e("LOCAL_QUERY", "产品列表查询失败", error);
});

3. 注意事项

  • 如果你需要强制查询后端线上数据,只需要在DataQuery后追加.online()方法即可
  • 示例中的Products实体类是向导自动生成的,存放在项目的odata.entity包下,可直接调用其属性字段做查询条件
  • Kotlin项目逻辑完全一致,仅需要将语法替换为Kotlin对应写法即可

内容的提问来源于stack exchange,提问作者djomla87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:24:02