检查新领域对象尚未保存

时间:2017-04-24 16:48:42

标签: java android realm

有谁知道,我怎么能检查领域对象还没有保存到数据库呢? 我想实现逻辑,如下例所示:

protected boolean prepareToSave(Product product, Realm realm) {
    // are we have enought space at storage?
    int productLimit = getLimit();
    if(
       /* product.isStoredInDB() && */ 
       realm.where(Product.class).count() >= productLimit)
       Toast.makeText(this, "Not enought space at storage", Toast.LENGTH_LONG).show();
    else
       // do another stuff
}

编辑:

其中:

public class Product extends RealmObject {

    @PrimaryKey private long id;
    @Required private String title;
    private String note;
    private byte[] image;
    private byte[] thumbnail;

    private double count = Double.NaN;
    private double minimumCount = Double.NaN;

    // getters and setters
}

和方法getLimit()仅返回存储的同步限制,而不是真正的SD卡或内部存储容量。此限制用于提供 In app purchase

1 个答案:

答案 0 :(得分:3)

您可以使用

Product p = getProduct()
if (!p.isManaged()) {
  // Object isn't saved in Realm 
}

但是您的代码段似乎表明您要检查设备是否有足够的空间来存储您的更改。目前还没有一种方法可以检查,因为它很大程度上取决于您要存储的数据类型。