后台线程没有响应android asynctask

时间:2014-07-24 09:24:35

标签: android multithreading android-asynctask filesystems

我正在尝试遍历文件系统中的所有文件夹。 我想索引所有遍历的文件。 当我尝试使用SQLite数据库进行索引时,应用程序没有响应。 让它运作的方法是什么?

  private class StartIndexing extends AsyncTask<File, String, String>{


            @Override
            protected String doInBackground(File... params) {
                String indexDone="0";
                File file=params[0];
                indexIn(file);

                indexDone="Async Done";
                return indexDone;
            }

            protected void indexIn(File folder){
                File[] dirs=folder.listFiles();

                for(File val:dirs){

                    if(val.isDirectory()){
                        new StartIndexing().executeOnExecutor(THREAD_POOL_EXECUTOR,val);

                        count++;
                    }
                    else{
                        DBoperation(val);
                        filecount++;
                    }

                }


            }

1 个答案:

答案 0 :(得分:0)

检查你的logcat它应该告诉你问题出在哪里。 确保您使用的对象不为空。例如,&#39; params&#39;。

另一种可能性 如果该文件为空,file.listFiles()将返回null,当您尝试使用它时,您将获得NPE