私は現在、実行前にローディングバーを開始し、バックグラウンドでサーバに何かを送信し、実行後にダイアログを閉じてボタンを有効にします。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");
}
}
http://www.vogella.de/articles/AndroidPerformance/article.htmlちょうど明確にする働き後
は、このリンクをお読みください。 onPostExecuteが呼び出されないのは、DatabaseAsyncクラスで実装されていないためです。代わりに、著者はゼロ引数でDatabaseAsyncでメソッドを実装しました。これは完全に異なったオーバーロードされたメソッドと考えられるため、もちろん実行されません。 http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(Result)でJavaDocを見てください –助けてくれてありがとうArhimed、本当に感謝しています。 – Splitusa