我目前有一個asyncTask
它在preexecute上開始一個加載欄,在後臺發送一些東西到服務器,並在後執行取消對話框,並啓用一個按鈕。但是,由於doInBackground返回null,我的post執行沒有執行。我試圖弄清楚我可以做些什麼讓postExecute運行。有任何想法嗎?感謝Android - 在後臺執行在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");
}
}
只是爲了澄清。沒有調用onPostExecute的原因是因爲它在DatabaseAsync類中根本沒有實現。相反,作者使用零參數在DatabaseAsync中實現了一個方法。這當然不會被執行,因爲它被認爲是完全不同且重載的方法。看看http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(結果) –
上的JavaDoc非常感謝Arhimed的幫助,我非常感謝。 – Splitusa