Android的 - 在执行职务中的AsyncTask [英] Android - on post execute in AsyncTask

查看:129
本文介绍了Android的 - 在执行职务中的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆