Android AsyncTask 等待其他函数完成
Posted
技术标签:
【中文标题】Android AsyncTask 等待其他函数完成【英文标题】:Android AsyncTask wait other function to finish 【发布时间】:2020-12-16 06:23:01 【问题描述】:我尝试在 android 中异步执行两个函数。所以我需要第一个函数代替第二个函数。我尝试使用 AsyncTask 来执行此操作。但问题是第一个函数不能等到第一个函数完成。
private class DemandeConge extends AsyncTask<Void, Void, Void>
protected void onPreExecute()
super.onPreExecute();
Log.i("we are here", "**************On pre Exceute......***************");
p=new ProgressDialog(getActivity());
p.setMessage("Please wait...It is downloading");
p.setIndeterminate(false);
p.setCancelable(false);
p.show();
Log.i("we are here", "**************On pre Exceute......***************");
@Override
protected Void doInBackground(Void... params)
Log.i("we are here", "**************oOn doInBackground...***************");
getSoldeConge();
Log.i("we are here", "**************On doInBackground...***************");
return null;
@Override
protected void onProgressUpdate(Void... values)
super.onProgressUpdate(values);
Log.i("we are here", "**************onProgressUpdate...***************");
Log.i("we are here", "**************onProgressUpdate...***************");
/**
* `onPostExecute` is run after `doInBackground`, and it's
* run on the main/ui thread, so you it's safe to update ui
* components from it. (this is the correct way to update ui
* components.)
*/
@Override
protected void onPostExecute(Void param)
Log.i("we are here", "**************onPostExecute...***************");
Log.i("we are here", "**************onPostExecute...***************");
Log.i("we are here", "add conge()");
p.dismiss();
@Override
protected void onCancelled()
super.onCancelled();
p.dismiss();
Log.i("we are here", "**************onCancelled...***************");
我有两个函数,第一个是 getSoldeConge();
,它通过改造获取一些数据,第二个函数将在第二个函数完成时执行 Log.i("we are here", "add conge()");
,但在我的情况下,第二个函数将在第一个函数完成之前运行。
【问题讨论】:
【参考方案1】:改造调用已在后台线程中完成,因此您无需从Asynctask
调用它们。我们需要查看改造代码以进一步帮助您。
顺便说一句,您不应该在 2020 年使用 AsyncTask
。如果您要坚持使用 Java,请使用 RXJava。或ExecutorService
。
【讨论】:
以上是关于Android AsyncTask 等待其他函数完成的主要内容,如果未能解决你的问题,请参考以下文章
等待 AsyncTask 完成,然后在 Android Java 中执行下一个代码
Android AsyncTask 等待完成以检索数据并将其显示在 ListView
java 另一个等待线程 - 字体:https://stackoverflow.com/questions/2321829/android-asynctask-testing-with-android