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:只有创建视图层次结构的原始线程才能触及其视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)