Android的 - 在执行职务中的AsyncTask [英] Android - on post execute in AsyncTask
问题描述
目前,我有一个的AsyncTask
这在preexecute开始装载酒吧,在后台送东西到服务器,并在后期执行关闭对话框并启用按钮。然而,我的职位是执行不因doInBackground执行返回null。我试图找出什么我可以做做得到postExecute运行。有任何想法吗?谢谢
code:
类DatabaseAsync扩展的AsyncTask<太虚,太虚,太虚> {
@覆盖
在preExecute保护无效(){
对话框= ProgressDialog.show(MainFeedActivity.this,空发布...);
} @覆盖
保护无效doInBackground(虚空......为arg0){
Log.d(TAG,发送到DATABSE);
SendToDatabase();
Log.d(TAG,发送到数据库 - 完成); //dialog.dismiss(); //sendButton.setEnabled(true); 返回null;
} 保护无效onPostExecute(){
Log.d(TAG,P执行);
dialog.dismiss();
sendButton.setEnabled(真);
Log.d(TAG,执行完毕);
} }
这是完全可以返回空
从 doInBackground()
你的情况。只要确保onPostExecute()看起来是这样的:
@覆盖
保护无效onPostExecute(虚空结果){
Log.d(TAG,P执行);
dialog.dismiss();
sendButton.setEnabled(真);
Log.d(TAG,执行完毕);
}
I currently have an asyncTask
which on preexecute begins a loading bar, in background send something to a server, and on post execute dismisses the dialog and enables a button. However, my post execute is not executing due to doInBackground returning null. I'm trying to figure out what I can do do get the postExecute to run. any ideas? thanks
code:
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");
}
}
It is completely Ok to return null
from doInBackground()
in your case. Just make sure onPostExecute() looks like this:
@Override
protected void onPostExecute(Void result) {
Log.d(TAG, "p execute");
dialog.dismiss();
sendButton.setEnabled(true);
Log.d(TAG, "done executing");
}
这篇关于Android的 - 在执行职务中的AsyncTask的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!