2011-12-03 9 views
2

私は現在、実行前にローディングバーを開始し、バックグラウンドでサーバに何かを送信し、実行後にダイアログを閉じてボタンを有効にします。asyncTaskしかし、nullを返すdoInBackgroundのため、私のポストの実行は実行されません。私はpostExecuteを動かすために何ができるか把握しようとしています。何か案は?おかげAndroid-on postはAsyncTaskで実行します

コード:

class DatabaseAsync extends AsyncTask<Void,Void,Void>{ 
     @Override 
     protected void onPreExecute(){ 
      dialog = ProgressDialog.show(MainFeedActivity.this, null, "Posting..."); 
     } 

     @Override 
     protected Void doInBackground(Void... arg0) { 
      Log.d(TAG, "send to databse"); 
      SendToDatabase(); 
      Log.d(TAG, "sent to database - DONE"); 

      //dialog.dismiss(); 

      //sendButton.setEnabled(true); 

      return null; 
     } 

     protected void onPostExecute(){ 
      Log.d(TAG, "p execute"); 
      dialog.dismiss(); 
      sendButton.setEnabled(true); 
      Log.d(TAG, "done executing"); 
     } 

    } 

答えて

5

あなたのケースでdoInBackground()からnullを返すことが完全にOKです。念onPostExecuteを作る()は次のようになります。あなたのDatabaseAsyncクラスのこのような

@Override 
protected void onPostExecute(Void result) { 
    Log.d(TAG, "p execute"); 
    dialog.dismiss(); 
    sendButton.setEnabled(true); 
    Log.d(TAG, "done executing"); 
} 
+2

http://www.vogella.de/articles/AndroidPerformance/article.htmlちょうど明確にする働き後

class DatabaseAsync extends AsyncTask<String, Void, String>{ protected void onPreExecute(){ dialog = ProgressDialog.show(MainFeedActivity.this, null, "Posting..."); } protected String doInBackground(String... arg0) { Log.d("TAG", "send to databse"); Log.d("", "sent to database - DONE"); //dialog.dismiss(); //sendButton.setEnabled(true); return null; } protected void onPostExecute(String result){ Log.d("TAG", "p execute"); dialog.dismiss(); Log.d("TAG", "done executing"); } 

は、このリンクをお読みください。 onPostExecuteが呼び出されないのは、DatabaseAsyncクラスで実装されていないためです。代わりに、著者はゼロ引数でDatabaseAsyncでメソッドを実装しました。これは完全に異なったオーバーロードされたメソッドと考えられるため、もちろん実行されません。 http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(Result)でJavaDocを見てください –

+0

助けてくれてありがとうArhimed、本当に感謝しています。 – Splitusa

0

変更:コードは

関連する問題