Java 从活动调用时,另一个AsyncTask类中的ProgressDialog未显示
我有一个名为RestClient的类,它从我的web服务获取一些信息,然后返回,我试图在访问internet时运行一个进度对话框。因为我在不止一个地方使用这个类,所以我不会在活动中使用它。这是我的RestClient类:Java 从活动调用时,另一个AsyncTask类中的ProgressDialog未显示,java,android,android-asynctask,progressdialog,Java,Android,Android Asynctask,Progressdialog,我有一个名为RestClient的类,它从我的web服务获取一些信息,然后返回,我试图在访问internet时运行一个进度对话框。因为我在不止一个地方使用这个类,所以我不会在活动中使用它。这是我的RestClient类: 问题是我的ProgressDialog从未显示。我已经尝试过使用getParent、getApplication和getApplicationContext代替AccessWebserviceActivity,但都没有成功。有人知道发生了什么,我该怎么办吗?您还没有创建进度对话
问题是我的ProgressDialog从未显示。我已经尝试过使用getParent、getApplication和getApplicationContext代替AccessWebserviceActivity,但都没有成功。有人知道发生了什么,我该怎么办吗?您还没有创建进度对话框,请尝试此操作
ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog= new ProgressDialog(context);
dialog.setMessage("on Progress");
dialog.show();
super.onPreExecute();
}
你需要打电话
dialog = ProgressDialog.show(context, "Buscando seu Produto","Por favor, espere um momento...",true ,false);
移除
dialog.show();
也把你的对话。解散;onPostExecute中的方法。此dialog.dismise方法在catch块中很好,但如果在try块中调用此方法,它的用途是什么。一旦您调用此异步任务,它将删除进度对话框
删除该声明。你已经:
restClient.execute();
这样就可以了
应该在onPostExecute中处理doInBackground的结果。它不能在onCreate中处理或检索。在对线程和进程进行了大量研究之后,我发现我必须封装我在创建之后拥有的所有代码 RestClient.execute在 new Threadnew Runnable{public void run{//My code}} 因此,代码的执行和WebService查询都发生在后台 编辑:
即使创建新线程有效,也不建议这样做!正确的做法是创建另一个类,该类扩展AsyncTask以执行作业。您是否已从doInBackground方法中的try块中删除disclose方法?如果你得到任何错误,然后粘贴,以便有人可以帮助你。是的,我有。我之所以把它放在那里,是因为有人说这可能是问题之一,但没有奏效,我得到了一个I/编舞:跳过了126帧!应用程序可能在其主线程上做了太多的工作。为什么要这样做?2050年;AsyncTask的doInBackground在后台工作,并在UI上显示对话框。阅读本文我有这个UI线程。睡眠等待我的后台任务结束。我在我的申请中使用了它的返回,如果我没有这个中断,就会抛出一个空例外。请不要否定我的问题。不是那么简单。这个进度条无论如何都不会出现。我没有做错任何事,兄弟,我很惊讶为什么我的答案对你不起作用。没关系。我尝试了每个博客和每个解决方案所说的一切,但都没有成功;不能这样做,我在构造函数中对这个字符串做了一些修改。你能告诉我你的AsyncTask类是你的Activity类的子类还是AsnctaskClass有不同的包吗?@AmeerHamza,它不是我的Activity的子类,因为我在其他Activity中使用它,但它不在我的Activity所在的包中。
dialog.show();
returnFromExecute = restClient.get();
restClient.execute();