Azure移动应用程序获取方法android冻结应用程序

时间:2017-03-19 10:44:14

标签: java android azure azure-mobile-services

我有很好的天蓝色移动应用程序背景,但不是在android方面。

并且还完成了java初学者。

今天,我正在尝试使用本地运行的azure移动应用程序。

它有一个带有简单todotable的表控制器,带有一列“Name”

这是我的代码。

public class TodoItem {
   private String Id;
   private String Name;
}

private void CreateMobileAppClient() {

   String mobileAppUrl="http://localhost:58441/";
   try {
       mobileServiceClient = new MobileServiceClient(new URL(mobileAppUrl), this);
   } catch(IOException e){
       throw new RuntimeException(e);
   }
}

private void GetData() {

    MobileServiceTable<TodoItem>   mTable=mobileServiceClient.getTable(TodoItem.class);
    try {
        List<TodoItem> results = mTable.execute().get(100, TimeUnit.MILLISECONDS);
        Log.d("debug","data success");
        String str="";
    } catch(Exception e) {

    }
}

在调试过程中一切正常,直到我进入execute().get()方法。

此时我的应用程序完全冻结,既没有进入阻止块,也没有进入下一行。

我也没有在日志和消息中看到太多。

我认为问题与此类似 App not retrieving data from Azure mobile service table

任何帮助都会有用。

(P.S:蔚蓝一侧的桌面控制器,与小提琴手完美配合,所以没有问题。)

1 个答案:

答案 0 :(得分:3)

尝试使用:

MobileServiceList<TodoItem> results = mTable.execute().get(100, TimeUnit.MILLISECONDS);

此外,您应该在AsyncTask

中获得这些结果
private void GetData()
    {

    MobileServiceTable<TodoItem> mTable = mobileServiceClient.getTable(TodoItem.class);
    MobileServiceList<TodoItem> results;

    new AsyncTask<Void, Void, Void>() {

          @Override
          protected Void doInBackground(Void... params) {
             try {
                 results = mTable.execute().get(100, TimeUnit.MILLISECONDS);
                 Log.d("debug","data success");
                 }
             catch(Exception e)
                 {

                 }
            return null;
           }
       }.execute
    }