2017-04-05 78 views
0

我正在制作Android应用程序并决定使用Azure的数据库平台。我发现很容易在不同的表中添加条目,但是查询数据库几乎是不可能的。为Android高效查询Azure的移动服务客户端

目前,我试图按照这种模式:How to get the result of OnPostExecute() to main activity because AsyncTask is a separate class?

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

在这一天所有我想要的是得到这个查询的结果在一个可管理的方式结束:但是它似乎没有被包裹在这样的的AsyncTask执行

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

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(); 

有没有简单的方法来解决这个问题?我想要的只是一个简单查询的结果,我不明白这是如此之难..

谢谢!

回答

0

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

相关问题