android – 异步任务OnProgressUpdate CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图

android – 异步任务OnProgressUpdate CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图,第1张

概述我正在使用AsyncTask下载一个带有progressdialog的数据库,该数据库显示了UI的进度.我的一些用户收到错误: CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图. 据我所知,只有在尝试从UI线程更新Views时才会发生这种情况.这是错误: COM … updateops.DbCreate.onProgressUpdate(D 我正在使用AsyncTask下载一个带有progressdialog的数据库,该数据库显示了UI的进度.我的一些用户收到错误:

CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图.

据我所知,只有在尝试从UI线程更新VIEws时才会发生这种情况.这是错误:

COM … updateops.DbCreate.onProgressUpdate(DbCreate.java:70)
在com … updateops.DbCreate.onProgressUpdate(DbCreate.java:1)

这是我的代码:

public class DbCreate extends AsyncTask<String,String,String>{private static Context mCtx;private static ProgressDialog mDialog;public static AmazonSimpleDBClIEnt mSDbClIEnt;public static AmazonS3ClIEnt mS3ClIEnt;private static int mAppVersion;private static boolean mCreate;public DbCreate(Context ctx,int versionCode,boolean create) {    mCtx = ctx.getApplicationContext();    mAppVersion = versionCode;    mDialog = new ProgressDialog(ctx);    mDialog.setProgressstyle(ProgressDialog.STYLE_HORIZONTAL);    mDialog.setMessage("Checking for server access. Please wait...");    mDialog.setCancelable(false);    mDialog.setMax(1);    mDialog.show();     mCreate = create;}protected voID onProgressUpdate(String... name) {    if (name[0].equals("item")) {        mDialog.incrementProgressBy(1);    } else if (name[0].equals("setMax")) {        mDialog.setProgress(0);        mDialog.setMax(Integer.parseInt(name[1]));   <-- This is line 70}}@OverrIDeprotected String doInBackground(String... arg0) {    **do stuff**    publishProgress("setMax",""+ 3);}

它看起来像我正在遵循我应该做的事情,以避免这个错误.有人知道为什么会这样吗?

编辑:我还应该提到这段代码大部分时间都有效.我在Developer Console上收到崩溃报告.

解决方法 根据onProgressUpdate(Progress …)在调用publishProgress(Progress …)之后在UI线程上调用.

您应该分析整个日志报告,以检查是否有可能在其他线程上创建了异步任务.

如果您真的找不到根本原因,可以使用在UI线程上创建的处理程序来解决.

总结

以上是内存溢出为你收集整理的android – 异步任务OnProgressUpdate CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图全部内容,希望文章能够帮你解决android – 异步任务OnProgressUpdate CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存