有效地查询 Azure 的移动服务客户端(适用于 Android



我正在开发一个Android应用程序,并决定使用Azure的数据库平台。我发现向不同的表添加条目非常容易,但查询数据库几乎是不可能的。

目前我正在尝试遵循这个模型:如何将OnPostExecute()的结果获取到主活动,因为AsyncTask是一个单独的类?

简而言之,它使用一个接口来实现一个 AsyncTask,我的查询在 doInBackground() 中执行。我的问题是,执行单个简单查询需要很多行代码,并且在运行我的应用程序时我需要执行多个唯一查询,并且创建数十个单独的接口/类似乎效率极低。

归根结底,我只想以可管理的方式从此查询中获取结果:

final MobileServiceList<Users> result = mUser.where().field("username").eq(username).execute().get();

但是,如果不被包装在像这样的 AsyncTask 中,它似乎无法执行:

new AsyncTask<Users, Void, Users>() {
@Override
protected Users doInBackground(Users... params) {
try {
final MobileServiceList<Users> result = mUser.where().field("username").eq(username).execute().get();
if(result.size() > 0) {
System.out.println("something in list");
return result.get(0);
}
} catch (Exception exception) {
exception.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Users result) {
System.out.println("in post");
if(username.equals((result.username)) && password.equals(result.password)) {
System.out.println("found user");
}
}
}.execute();

有什么简单的方法可以解决这个问题吗?我想要的只是一个简单的查询的结果,我不明白这怎么这么难。

谢谢!

不幸的是,没有任何简单的方法可以解决这个问题,请参阅AsyncTask参考以了解它以帮助Android UI线程异步获取结果。

最新更新