Toast无法在AsyncTask中显示

时间:2011-09-30 11:36:48

标签: android android-asynctask android-context android-toast

我有一个简单的应用程序将图像(Base64编码)发送到服务器,服务器获取此数据正常,因为PHP脚本向我发送附带Base64数据的电子邮件。但是,在任务完成后,toast永远不会显示。数据发布后如何显示Toast?

我认为问题是在上下文中。

http://pastie.org/2616524

更新

我已经更新了链接,因为我已经将上传逻辑移动到另一个.java文件中。

1 个答案:

答案 0 :(得分:0)

您的样品看起来不错。如果mContext变量所属的Activity当前处于活动状态,则应该显示。不是在其他情况下。

尝试此修改:

new UploadImage(ImageUploadActivity.this).execute(sentImage);

http://developer.android.com/guide/topics/ui/notifiers/toasts.html
Android toast.makeText context error

编辑:AsyncTask的错误类型声明
您的AsyncTask声明似乎是class UploadImage extends AsyncTask<String, Void, String>

这意味着:

  • doInBackground(String... arg)
  • 的参数类型
  • 是进度的类型
  • 是从doInBackgroundonPostExecute
  • 的结果类型

请将您的onPostExecute声明更改为:

protected void onPostExecute(String result)

或将doInBackground的返回类型更改为<Bitmap>并将类声明更改为:class UploadImage extends AsyncTask<String, Void, Bitmap>

http://developer.android.com/reference/android/os/AsyncTask.html