Почему тостовые уведомления умирают в случае задержки? - PullRequest
1 голос
/ 24 декабря 2010

Я не уверен, что это точная причина моей проблемы, но я объясню 2 симптома, которые я заметил:

  1. Если я поставлю точку останова на Toast.makeText (..). Show (), перешагни, затем подожди несколько секунд перед запуском, тост не появится.
  2. У меня есть обратный вызов местоположения, который пытается показать тост, но он никогда не появляется. Может быть, я делаю что-то еще не так, это вопрос в моем приложении сигнала бедствия с открытым исходным кодом .

Любая помощь или указатели будут оценены,

- убер

Ответы [ 2 ]

1 голос
/ 24 декабря 2010

Хорошо, я понял это. Я предполагаю, что мой обратный вызов выполнялся в потоке пользовательского интерфейса, и сразу после тоста пришло сообщение HTTP и текстовое сообщение, поэтому поток пользовательского интерфейса блокировал сам себя и не обрабатывал тост. Моим решением было поместить всю тяжелую работу в отдельный поток, как было предложено на Toast Immediately и подробно изложено здесь http://developer.android.com/guide/appendix/faq/commontasks.html#threading, поэтому после того, как я это сделал, все работает волшебным образом. Не было никаких проблем с «контекстом» вообще.

Что касается странности 2 тостов, работающих, а 1 нет, я думаю, что maketext (...). Show () каким-то образом обрабатывает часть очереди тостов пользовательского интерфейса и может вызвать появление тоста.

1 голос
/ 24 декабря 2010

Удалите бит .getApplicationContext() строки источника, которую вы связали. Контекст приложения не привязан к Window, поэтому ваш тост на самом деле не может появиться. Вместо этого используйте контекст Activity, и он будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...