我正在开发Android应用程序,并且在Azure中创建了应用程序服务&我一直在尝试了解如何与DB通过MobileAppServices。无法从Azure简易表中检索数据并将其绑定到Android Studio中的列表
我成功地将项目添加到表格(简单表格),但我无法从表格中检索数据。
我试图在两个方面:
与/检索数据没有的AsyncTask。
(1)我得到一个错误。 (使用的AsyncTask)
public void onClickVerify(View view) {
if (mClient == null)
return;
AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>(){
@Override
protected Void doInBackground(Void... params) {
try {
final List<Users> URS = GetItemsFromMobileServiceTable();
runOnUiThread(new Runnable() {
@Override
public void run() {
Verified = "Account is not Verified";
for (Users i : URS) {
if (i.getUN() == null)
break;
else if(i.getUN() == Username.toString()) {
Verified = "Account Verified";
}
}
}
});
} catch (final Exception e) {}
return null;
}
}.execute();
runAsyncTask(task);
}
private List<Users> GetItemsFromMobileServiceTable() throws ExecutionException, InterruptedException, MobileServiceException {
return mUser.where().field("UN").eq(Username.toString()).execute().get();
}
--------- beginning of crash 03-14 12:40:54.623 3500-3500/com.himk.karam.h
E/AndroidRuntime:致命异常:主 工艺:com.himk.karam.h,PID:3500 java.lang.IllegalStateException:无法执行方法 android:onClick at android.view.View $ DeclaredOnClickListener.onClick(View.java:4725) at android.view.View.performClick(View.java:5637) at android.view.View $ PerformClick.run( View.java:22429) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886 ) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 由于:java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android 。视图。在android.view.View $ PerformClick.run(View.java:22429) 处查看$ DeclaredOnClickListener.onClick(View.java:4720) at android.view.View.performClick(View.java:5637) 。 os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app。 ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com .android.internal.os.ZygoteInit。 main(ZygoteInit.java:776) 引起:java.lang.IllegalStateException:无法执行任务: 任务已在运行。 at com.img.karam.h.Login.onClickVerify(com.img.karam.h.Login.runAsyncTask(Login.java:183) (android.os.AsyncTask.executeOnExecutor(AsyncTask.java:609) Login.java:114) at android.view.View $ DeclaredOnClickListener.onClick(View.java:4720) at android.view.View.performClick(View())在java.lang.reflect.Method.invoke(Native Method) .java:5637) at android.view.View $ PerformClick.run(View。的java:22429) 在android.os.Handler.handleCallback(Handler.java:751) 在android.os.Handler.dispatchMessage(Handler.java:95) 在android.os.Looper.loop(Looper.java: 154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit的.java:886) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
(2)启动时的活动是c ontains是检索作用的活动不加载(不使用AsynTask)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
try {
mClient = new MobileServiceClient("https://khim.azurewebsites.net",this);
mClient.setAndroidHttpClientFactory(new OkHttpClientFactory() {
@Override
public OkHttpClient createOkHttpClient() {
OkHttpClient client = new OkHttpClient();
client.setReadTimeout(20, TimeUnit.SECONDS);
client.setWriteTimeout(20, TimeUnit.SECONDS);
return client;
}
});
List<Users> mUsers = mClient.getTable(Users.class).execute().get();//if I remove this line the activity will load normally
Username = (EditText) findViewById(R.id.etUN);
} catch (MalformedURLException | InterruptedException | ExecutionException | MobileServiceLocalStoreException e) {
e.printStackTrace();
}
}
注:所有我想要做的是在列表中有android的数据我不想看这件事TO THE用户。
'由于:java.lang.IllegalStateException:无法执行任务:任务已在运行.'由于异常本身解释,您不能多次执行** AsyncTask **。你可以在SO上查看[这个类似的问题](http://stackoverflow.com/questions/6879584/how-to-run-the-same-asynctask-more-than-once)了解更多信息。 –