我有桌子任务: enter image description here
我想在此表中获取记录。但是有一个BackendlessException { code: 'Internal client exception', message: 'null' }
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task);
Backendless.initApp(getApplicationContext() ,APP_ID, SECRET_KEY, VERSION);
BackendlessCollection<Task> tasks = Backendless.Data.of(Task.class).find();
System.out.println( "Size " + tasks.getCurrentPage().size() );
Iterator<Task> iterator = tasks.getCurrentPage().iterator();
while (iterator.hasNext())
{
Task t = iterator.next();
System.out.println("Question = " + t.getQuestion());
System.out.println("Answer = " + t.getAnswer());
}
}
Task.class:
public class Task {
public String Question ;
public String Answer ;
public String ownerId ;
public String objectId ;
public Date created ;
public Date updated ;
public Task()
{
}
public Task(String Question ,String Answer)
{
this.Question = Question ;
this.Answer = Answer ;
}
}
我从Backendless文档中学到了这个查询。这个错误的原因是什么?如何避免此错误?在从Backedless检索数据之前是否需要了解一些规则?
答案 0 :(得分:0)
您正在主UI空间线程上调用同步(阻塞)API:
BackendlessCollection<Task> tasks = Backendless.Data.of(Task.class).find();
要避免错误,请创建一个单独的线程并在其中使用API,或将调用更改为异步版本。
Android应用程序无法在主UI上使用同步API 线。原因是主线程不允许阻塞 调用。由于API请求执行基于网络的通信,因此 自然阻止。因此,在使用Backendless API时 一定要使用方法的异步版本,或者创建一个新的 线程并在其中使用同步API