2011-06-23 26 views
2

私が取り組んでいるプロジェクトはやや複雑ですが、私はこの単純なテストを行って、自分のコードに何が間違っていたかを追跡しようとしています。進捗ダイアログは決して却下されません。私は彼らがnullを返さない1つの時点でそれを持っていました。 'AsyncTask onPostExecuteが呼び出されていません

public class SyncTestActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     new mTask(this).execute(); 
    } 

    public class mTask extends AsyncTask<Void, Void, Void> { 

     Context mContext; 

     ProgressDialog progressDialog; 

     public mTask(Context aContext) { 
      mContext = aContext; 
     } 

     @Override 
     public void onPreExecute() { 

      progressDialog = new ProgressDialog(mContext); 
      progressDialog.setMessage("New..."); 
      progressDialog.show(); 
     } 

     @Override 
     public Void doInBackground(Void... params) { 
      return null; 
     } 

     public Void onPostExecute(Void... params) { 
      progressDialog.dismiss(); 
      return null; 


     } 
    } 

} 

答えて

14

パラメータが間違っている、これを使用する:

@Override 
    protected void onPostExecute(Void result) { 
     progressDialog.dismiss(); 
     return; 

    } 
+2

+1を。これは自動的に解決されました。 –

+0

+1はい、これは忘れるだけです。今、それは働いています。 – Praveenkumar

2

の表記がonPostExecuteの前にありません。またreturn nullは必要ありません。

5

を私はセザールとシャイレンドラの回答に同意していますが、それでも私はそれ以上ほとんど改善してみましょう:@Overrideを覚えるために

@Override 
    protected void onPostExecute(Void result) { 

     if(progressDialog.isShowing()) 
     { 
     progressDialog.dismiss(); 
     } 
     return; 

    } 
関連する問題