【问题标题】:My AsyncTask is stuck in doInBackground() forever [closed]我的 AsyncTask 永远卡在 doInBackground() [关闭]
【发布时间】:2014-03-31 18:00:53
【问题描述】:

我有一个程序,我在其中查阅谷歌电子表格,我在 AsyncTask 中执行,但速度很慢,所以我想放置一个 ProgressDialog,我在 onPreExecute 方法上显示它,但我的程序无法执行 doInBackground 方法,但是我可以看到应用程序通过 Log.i 进入此方法,但什么也不做,我可以看到进度对话框,但没有别的,就像一个无限的 bucle

我的 AsyncTask 是这样的:

private class GestionDatos extends AsyncTask<Void, Void, ArrayList<String>> {

    @Override
    protected void onPreExecute(){
        super.onPreExecute();


        mProgress = ProgressDialog.show(MainActivity.this, "Trabajando", "Espere por favor");
    }


    @Override
    protected ArrayList<String> doInBackground(Void... params) {
        SpreadsheetService service = new SpreadsheetService("com.banshee");
        ArrayList<String> nombres = new ArrayList<String>();
        String idAnterior = "idAnterior";
        try {

            String urlString = "My URL";

            URL url = new URL(urlString);

            ListFeed feed = service.getFeed(url, ListFeed.class);

            for (ListEntry entry : feed.getEntries()) {
                CustomElementCollection elements = entry
                        .getCustomElements();
                String id = elements.getValue("Codigo");
                if (idAnterior.compareTo(id) != 0) {
                    idAnterior = id;
                    String name = elements.getValue("Profesor");
                    nombres.add(name);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ServiceException e) {
            e.printStackTrace();
        }

        return nombres;
    }

    @Override
    protected void onPostExecute(ArrayList<String> result){
        super.onPostExecute(result);
        mProgress.dismiss();
        values = result;
    }

}

对不起,我的英语不好,请耐心等待,我是一个noob android程序员

【问题讨论】:

  • 摆脱super.onPostExecute(result);
  • 感谢您的快速回答petey,但不幸的是我的ProgressDialog一直在运行......非常感谢你:)
  • 哦,我怎么会错过这个,把super.onPreExecute();也去掉
  • 感谢您的宝贵时间,但我的应用仍然无法运行

标签: android android-asynctask progressdialog


【解决方案1】:

最后似乎是硬件问题,我在一台功能强大的计算机上执行代码并且工作正常,可能是由于繁重的工作我的应用程序冻结了?不知道,谢谢

【讨论】:

  • 这是一个有效的答案。如果一个人对这种情况不满意,回应应该是投票结束问题作为一次性/不可重现的情况,而不是标记问题提出者陈述的答案>实际分辨率。或者,如果有人觉得有更好的答案或者这不是一个明智的解决方案,请发布答案或发表评论。但不要标记提问者报告什么对他们自己的问题有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多