我目前有一个 asyncTask
,它在执行前开始一个加载栏,在后台向服务器发送一些东西,在执行后关闭对话框并启用一个按钮。但是,由于 doInBackground 返回 null,我的后执行没有执行。我想弄清楚我能做些什么来运行 postExecute。有任何想法吗?谢谢
代码:
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");
}
}
最佳答案
在您的情况下,从 doInBackground()
返回 null
是完全可以的。只要确保 onPostExecute() 看起来像这样:
@Override
protected void onPostExecute(Void result) {
Log.d(TAG, "p execute");
dialog.dismiss();
sendButton.setEnabled(true);
Log.d(TAG, "done executing");
}
关于Android - 在 AsyncTask 中执行后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369539/