简体   繁体   English

无尾事件不会触发

[英]Backendless event does not fire

In my Android app I use Backendless to store my data online. 在我的Android应用中,我使用Backendless在线存储数据。 I want to do something when a new Point object is saved but the beforeCreate event never gets triggered. 我想在保存新的Point对象但从不触发beforeCreate事件时做一些事情。

Bootstrap.java 引导程序

public class Bootstrap implements IBackendlessBootstrap
{            
  @Override
  public void onStart()
  {
    Backendless.setUrl( "https://api.backendless.com" );
    Backendless.initApp( "XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXX","v1");
    Backendless.Persistence.mapTableToClass( "Point", Point.class );
  }

  @Override
  public void onStop()
  {        
  }    
}

PointTableEventHandler.java: PointTableEventHandler.java:

@Asset( "Point" ) 
public class PointTableEventHandler extends com.backendless.servercode.extension.PersistenceExtender<Point>
{    
  @Override
  public void beforeCreate( RunnerContext context, Point point) throws Exception
  {
      System.out.println("enter beforeCreate");
      point.setPhoneNumber("12345");
      System.out.println("exit beforeCreate");
  }    
}

Point.java Point.java

public class Point extends BackendLessObject {
    private String phoneNumber;

    public Point() {
        super();
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}

BackendlessObject.java BackendlessObject.java

public class BackendLessObject {

    protected String objectId;
    protected Date created;
    protected Date updated;
    protected String ownerId;

    public BackendLessObject() {    
    }

    public String getObjectId()  {
        return objectId;
    }

    public void setObjectId( String objectId )
    {
        this.objectId = objectId;
    }

    public Date getCreated()
    {
        return created;
    }

    public void setCreated( Date created )
    {
        this.created = created;
    }

    public Date getUpdated()
    {
        return updated;
    }

    public void setUpdated( Date updated )
    {
        this.updated = updated;
    }    

    public String getOwnerId() {
        return ownerId;
    }

    @Override
    public String toString() {
        return objectId;
    }
}

The event is enabled and deployed to production. 该事件已启用并部署到生产中。 When I run my app the point is created with all the data provided, but the PhoneNumber is not set - so the event did not run. 当我运行我的应用程序时,将使用提供的所有数据创建该点,但是未设置PhoneNumber因此该事件未运行。 Debugging it also shows that it was never called. 对其进行调试还表明它从未被调用过。

In my Android app I call 在我的Android应用中,我致电

newPoint.save();

This is fixed in the latest version of the library. 该问题已在该库的最新版本中修复。 Make sure to grab a copy from the github repository . 确保从github存储库中获取一个副本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM