【问题标题】:Uploading information using AsyncTask in android在android中使用AsyncTask上传信息
【发布时间】:2014-01-07 21:37:08
【问题描述】:

在android中使用AsyncTask上传信息并在任务完成后通知用户


  • 我在做什么:: 我正在尝试将信息从 android 上传到服务器

  • 我尝试了什么:: 我已经完成了图片上传部分,我为此使用了 Async-task 并且功能正常

我要做什么::

  • 我想在文件上传完成后显示 Toast 消息 "File Uploaded"
  • 我怎样才能做到这一点?

MainActivity.java

public class DataAcceptActivity extends Activity {

    <----------------------Code-------------->
    public class MainTest extends AsyncTask<String, Integer, String> {

        @Override
        protected void onPreExecute() {
            pDialog = new ProgressDialog(DataAcceptActivity.this);
            pDialog.setMessage("Loading..");
            pDialog.setIndeterminate(true);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        @Override
        protected String doInBackground(String... params) {

            postImageData();

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub

            super.onPostExecute(result);
            // data=jobj.toString();
            pDialog.dismiss();

        }

    }


    public class ImageAdapter extends BaseAdapter{

        <_----------------- code _-------------->

}

谢谢!!

【问题讨论】:

标签: android toast


【解决方案1】:

在您的代码中添加一些更改 onPostExecuteMethod

 public class MainTest extends AsyncTask<String, Integer, String> {
    @Override
    protected void onPreExecute() {
        pDialog = new ProgressDialog(DataAcceptActivity.this);
        pDialog.setMessage("Loading..");
        pDialog.setIndeterminate(true);
        pDialog.setCancelable(false);
        pDialog.show();
    }

    @Override
    protected String doInBackground(String... params) {

        postImageData();

        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
       if(pDialog.isShowing()){
        // data=jobj.toString();
         pDialog.dismiss();
     }
       Toast toast = Toast.makeText(context, text, duration);
         toast.show();
    }

}

【讨论】:

    【解决方案2】:
    public class MainTest extends AsyncTask<Void, Void, Boolean> {
    
            @Override
            protected void onPreExecute() {
                pDialog = new ProgressDialog(DataAcceptActivity.this);
                pDialog.setMessage("Loading..");
                pDialog.setIndeterminate(true);
                pDialog.setCancelable(false);
                pDialog.show();
            }
    
            @Override
            protected Boolean doInBackground(Void... params) {
    
                postImageData();
    
                return true;
            }
    
            @Override
            protected void onPostExecute(Boolean result) {
                // TODO Auto-generated method stub
    
                super.onPostExecute(result);
                // data=jobj.toString();
                 if(result)
             {
              Toast.makeText(_context , "Image uploaded.." , Toast.LENGTH_LONG).show();
         }
        /* else
         {
            Toast.makeText(_context , "Image is not uploaded.." , Toast.LENGTH_LONG).show();
         }*/
            if(pDialog.isShowing())pDialog.dismiss();
           }
    
        }
    

    【讨论】:

      【解决方案3】:

      在你的异步任务上

      @Override
      protected void onPostExecute() {
      
      
      
          Toast toast = Toast.makeText(getApplicationContextt, "File Uploaded", Toast.LENGTH_LONG).show();
      
      }
      

      【讨论】:

        【解决方案4】:

        在 AsyncTask 中,您必须在 onPostExecute 方法中通知:

        所以用这个:

        @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
                Toast toast = Toast.makeText(YourActivity.this, "Message Here", duration).show();
                pDialog.dismiss();
        
            }
        

        这还取决于您的响应您想要显示哪种类型的消息。

        如果您不使用 AsyncTask,那么您也可以使用 Handler

        【讨论】:

        • 还有 [+1] 推你超过 4000+ :)
        【解决方案5】:

        您可以简单地在onPostExecute 中显示祝酒词

         @Override
                protected void onPostExecute(String result) {
                    // TODO Auto-generated method stub
        
                    super.onPostExecute(result);
                    Toast toast = Toast.makeText(context, text, duration);
                     toast.show();
                    pDialog.dismiss();
        
                }
        

        【讨论】:

          【解决方案6】:

          您可以在异步任务的 onPostExecute() 方法中显示 toast 消息。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-03-08
            相关资源
            最近更新 更多