我目前有一个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