如何使用移动应用程序SDK从Azure简易表中获取过滤的数据? 我已经连续几天学习了教程(ToDoItem正常工作),参考文档等。当我尝试查询/过滤表时,我的应用程序冻结。
在我的主要活动之外,没有任何方法:
\"
在onCreate中:
MobileServiceClient mClient;
MobileServiceTable<RouterTable> mRouterTable;
我要在后台线程中查询表的类:
try {
mClient = new MobileServiceClient(
"https://azurept.azurewebsites.net",
this);
mRouterTable = mClient.getTable(RouterTable.class);
} catch (Exception e) {
e.printStackTrace();
}
我在单击按钮时进行查询的方法:
public class GetMac extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
try {
Log.i(TAG,"Start Query");
List<RouterTable> results = mRouterTable
.where()
.field("serial").eq("101")
.select("mac")
.execute()
.get();
Log.i(TAG,"Query Complete");
return results.get(0).toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
点击按钮后,这是我的日志猫:
private void onProvisionClicked() {
try {
mac = new GetMac().execute().get();
Log.i(TAG, mac);
} catch (Exception e) {
e.printStackTrace();
}
}
就是这样!我希望看到日志“查询完成”,依此类推...但是从没有。
如何查询Azure简易表以从中获取数据?
更新-工作:
2018-12-26 07:33:58.474 8068-8112/com.solvednetworks.cptool I/MainActivity: Start Query
2018-12-26 07:33:58.703 8068-8104/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (light greylist, reflection)
2018-12-26 07:33:58.967 8068-8104/com.solvednetworks.cptool W/networks.cptoo: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (light greylist, reflection)
Logcat:
public class GetMacTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
try {
Log.i(TAG,"Start Query");
List<RouterTable> results = mRouterTable
.where()
.field("serial").eq("101")
.select("mac")
.execute()
.get();
runOnUiThread(new Runnable() {
@Override
public void run() {
mac = results.get(0).getMac();
Log.i(TAG,"Query Complete - MAC: " + mac);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
private void onProvisionClicked() {
try {
new GetMacTask().execute();
} catch (Exception e) {
e.printStackTrace();
}
}