Java 异步任务在执行过程中崩溃
因此,如果我启动我的Java 异步任务在执行过程中崩溃,java,android,android-asynctask,Java,Android,Android Asynctask,因此,如果我启动我的异步任务它只是在调用方法getXmlFromUrl时崩溃。我找不到解决办法,有人能帮我吗?我在试一个小时左右。。。它说有一个丢失的catch块,但是在哪里? 如果我对getXmlFromUrl进行注释,应用程序就可以正常工作。 我走到了尽头,所以任何帮助都可以:) 来源: 错误: 不要在doInBackground()方法中显示progressdialog。您应该在postExecute()方法上执行此操作问题: 01-18 12:58:39.086: E/AndroidRu
异步任务
它只是在调用方法getXmlFromUrl
时崩溃。我找不到解决办法,有人能帮我吗?我在试一个小时左右。。。它说有一个丢失的catch
块,但是在哪里?
如果我对getXmlFromUrl
进行注释,应用程序就可以正常工作。
我走到了尽头,所以任何帮助都可以:)
来源:
错误:
不要在doInBackground()方法中显示progressdialog。您应该在postExecute()方法上执行此操作问题:
01-18 12:58:39.086: E/AndroidRuntime(16249): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
因为您在doInBackground()
中关闭了在WorkerThread中运行的AsyncTask的ProgressDailog对话框。当您的ProgressDailog对话框运行在ActivityMainThread上时
和Android严格禁止更新Worker或任何其他线程中的任何视图。
只需删除p.discouse()代码>来自doInBackground()
并将其放入AsyncTask的onPostExecute()
类似于:
protected Void doInBackground(Void... nothing){
Globals.shopCon=new ShopConnection("http://" + Globals.ip + "/ws410/rest/");
return null;
}
onPostExecuted(Void nothing)
{
p.dismiss();
}
简单地说:您不能在AsyncTaskdoInBackground()
Method中查看内容。
只需移动您的呼叫p.discouse()代码>到onPostExecute()
onPostExecute也是需要从AsyncTask类重写的方法:
如日志所示:
CalledFromErrorThreadException:仅创建的原始线程
视图层次可以接触其视图
因为您试图在doInBackground
中关闭ProgressDialog
。只需将p.dismise()
移动到onPostExecute
中,即可找到新版本的代码。您不应该关闭doInBackground()中的进度对话框。
请不要使用pastebin,发布代码,并在此处格式化:)但源代码大约有100行长。。。。这将是很长的张贴在这里,因为我没有看到任何扰流板,无论它是多长时间。只需将代码格式化为代码,它就会被包装在一个滚动条中。如果你的链接死了,这个问题将对其他人不利,如果他们正在寻找类似问题的帮助!天啊!!我错过了上网许可-谢谢!你的观点也是正确的:“我是新手,我还在学习:”Stuttt在十一月下旬对Android进行了编码,以前从未使用过java,只是C++、PHP、AutoIT和一种带有大微笑的Objy-C小的外观,因为Obj.c是垃圾:D
protected Void doInBackground(Void... nothing){
Globals.shopCon=new ShopConnection("http://" + Globals.ip + "/ws410/rest/");
return null;
}
onPostExecuted(Void nothing)
{
p.dismiss();
}
onPostExecuted(Void nothing)
{
p.dismiss();
}