0

我有一个扩展类Thread。此类将读取一些字节bluetooth,一旦完成或读取最后一个字节,它将调用 anevent listener以更新所有侦听类。

在蓝牙类中是这样的:

fileCompleteInitiator.fileCompleted(fileName);

实现的方法创建一个AsyncTask为了处理这个文件:

public class Home extends Activity {

   //other methods like onCreate..

    @Override
    public void fileComplete(String fileName) {

     if(fileName.endsWith(".zip")) {    
        CaseGenerator generator = new CaseGenerator(Home.this, fileName, lastCases, nist); 
        generator.execute("");
      }
    }
}

在这个异步任务中,我想显示一个progressdialog,但我得到了一个不那么原始的异常:

Cant create handler inside thread that has not called looper.prepare

它的代码是通常的东西,创建progressdialoginonPreExecute()并在onPostExecute(). 一些代码

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pd = new ProgressDialog(context);
        pd.setTitle("Please Wait..");
        pd.setMessage("Generating file");
        pd.show();
    }
     .....................

    @Override
    protected void onPostExecute(Integer result) {
        super.onPostExecute(result);

        if(pd != null)
            pd.dismiss();
     }

我错过了什么?

4

1 回答 1

1

您需要AsyncTask从主应用程序线程创建和执行您的。无论如何,这是一个要求AsyncTask,我上次检查过,它将解决您的onPreExecute()问题。

于 2013-07-02T14:12:09.547 回答