adj*_*fac 16 java android android-asynctask
每次我执行一次操作httpRequest时,代码执行时屏幕似乎会被锁定几秒钟.因此,我曾经在一个单独的线程中AsyncTask做所有我的httpRequest东西,同时提出一个ProgressDialog用户知道正在发生的事情.
我最近遇到了以下情况:我的一个输入httpRequest取决于前一个httpRequest(+解析)操作的结果.我不能只是AsyncTask顺序地把两个s放在一起,因为Android将把它们放在两个线程中并启动第二个线程而不完成第一个线程.如果没有适当的输入(第一个结果httpRequest),我的第二个httpRequest将崩溃应用程序.
有没有办法我可以放入一个wait()强制第二个AsyncTask不要开始,直到第一个完成?
Awa*_*riq 11
前几天我也有同样的情况.我以这种方式解决了它:将您的活动的引用传递给异步类的构造函数并执行do in background函数.现在在post执行函数中,从异步类调用ur活动的公共方法再次执行任务...或者试试这个:
if (asynclass.getStatus() == android.os.AsyncTask.Status.PENDING) {
asynclass.execute();
} else if (RF.getStatus() == android.os.AsyncTask.Status.FINISHED) {
asynclass = new asyncclass();
asynclass.execute();
} else {
Toast.maketoast(this, "Plz wait", 1).show();
}
Run Code Online (Sandbox Code Playgroud)
干杯
所以我认为(不确定),你需要在post执行方法上调用第二个asyncTask
protected void onPostExecute(final Void unused) {
if (this.dialog.isShowing()) {
this.dialog.dismiss();
new secTask().execute();
}}
Run Code Online (Sandbox Code Playgroud)