Тост не показывает, когда внутри AsyncTask - PullRequest
3 голосов
/ 30 сентября 2011

У меня есть простое приложение, которое отправляет изображение (в кодировке Base64) на сервер, сервер получает эти данные нормально, потому что скрипт PHP отправляет мне электронное письмо с прикрепленными данными Base64.Однако после выполнения задачи тост никогда не показывается.Как мне показать тост после публикации данных?

Я думаю, что проблема в контексте.

http://pastie.org/2616524

ОБНОВЛЕНИЕ

Я обновил ссылку, поскольку с тех пор переместил логику загрузки в другой файл .java.

1 Ответ

0 голосов
/ 30 сентября 2011

Ваш образец выглядит хорошо.Если активность, к которой принадлежит переменная mContext, в настоящее время активна, она должна отображаться.Не в другом случае.

попробуйте эту модификацию:

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

http://developer.android.com/guide/topics/ui/notifiers/toasts.html
Ошибка контекста Android toast.makeText

EDIT: НЕПРАВИЛЬНАЯ ДЕКЛАРАЦИЯ ТИПА AsyncTask
ваша AsyncTask декларация выглядит как class UploadImage extends AsyncTask<String, Void, String>

Это означает:

  • - тип параметров для doInBackground(String... arg)
  • - это тип прогресса
  • - это тип результата с doInBackground до onPostExecute

Поэтому измените ваше объявление onPostExecute на:

protected void onPostExecute(String result)

или измените тип возвращаемого значения doInBackground на <Bitmap> и измените объявление класса на: class UploadImage extends AsyncTask<String, Void, Bitmap>

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

...