0

を拡張するクラスがありますThread。このクラスは を介し​​て数バイトを読み取りbluetooth、終了または最後のバイトが読み取られると、event listenerすべてのリスニング クラスを更新するために を呼び出します。

bluetooth クラスでは次のようにします。

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("");
      }
    }
}

この asynctask 内で を表示したいのですがprogressdialog、それほどオリジナルではない例外が発生します。

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

そのためのコードは通常のものです。 で作成し、progressdialogonPreExecute()閉じ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 に答える