проблема с Toast

Ответить
Rustam
Сообщения: 40
Зарегистрирован: 13 апр 2014, 11:38

проблема с Toast

Сообщение Rustam » 09 фев 2015, 22:59

Приветствую!
в OnCreate создается Toast

Код: Выделить всё

toast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT);
    	toast.setGravity(Gravity.CENTER, 0, 0);
    	toast.setText("какой-то текст");
    	toast.show();
который благополучно отображается
потом стартует поток
для которого создается
final Handler hh=new Handler();
и внутри потока вызывается

Код: Выделить всё

hh.post(new Runnable() {

						@Override
						public void run() {
							// TODO Auto-generated method stub
							sc0_prjCreateAdp.notifyDataSetChanged();
							toast.setText("Обновление");
							toast.show();
						}
					});
Toast тоже отображается
проблема в следующем:
на экране есть список, по клику на элемент списка создается поток и загружает инфу
во время работы этого потока я хочу выдавать сообщения через Handler.Post -> Toast

ничего не выходит (((

я уже и через сервисы пробовал
вызываю сервис каждые 10мс
ввожу переменную для Toast , и в зависимости от этой переменной switch-ем вывожу нужный Toast
Toast выводится, но только после выполнения потока
поток создается как обычно

Код: Выделить всё

Thread tt=new Thread(){
			@Override
			public void run(){}}

как быть?
в потоке грузится инфа с ftp - при слабом соединении - юзер думает, что приложение подвисло

Аватара пользователя
Vedan06
Сообщения: 20
Зарегистрирован: 13 фев 2015, 14:55

Re: проблема с Toast

Сообщение Vedan06 » 13 фев 2015, 15:47

У тебя toast установлен после загрузки данных. Загрузка медленная. Пока не выполниться тост не запустится(по твоему коду)
Поставь Toast перед загрузкой даннх.

А прогрессбар не пробывал использовать?
Как мне кажется вызывать прогрессбар к круглой анимацией пока загрузка с ftp не выполнена.
Там определишься как организовать.

Rustam
Сообщения: 40
Зарегистрирован: 13 апр 2014, 11:38

Re: проблема с Toast

Сообщение Rustam » 14 фев 2015, 19:33

Vedan06 писал(а):У тебя toast установлен после загрузки данных. Загрузка медленная. Пока не выполниться тост не запустится(по твоему коду)
Поставь Toast перед загрузкой даннх.

А прогрессбар не пробывал использовать?
Как мне кажется вызывать прогрессбар к круглой анимацией пока загрузка с ftp не выполнена.
Там определишься как организовать.
и так пробовал
в отдельном потоке где создаю ftp соединение СРАЗУ ЖЕ
через Handler.post вызываю Toast - та же фигня

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: проблема с Toast

Сообщение doter.ua » 14 фев 2015, 20:09

sc0_prjCreateAdp ну и название )
А вообще в уроках про хендлер даже пример есть, где вместо работы sleep. И да, тост - отстойный способ для отображения прогресса.
Так же у асинктаска есть механизмы для отображения прогресса: publishProgress().
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Rustam
Сообщения: 40
Зарегистрирован: 13 апр 2014, 11:38

Re: проблема с Toast

Сообщение Rustam » 22 фев 2015, 18:43

doter.ua писал(а):sc0_prjCreateAdp ну и название )
А вообще в уроках про хендлер даже пример есть, где вместо работы sleep. И да, тост - отстойный способ для отображения прогресса.
Так же у асинктаска есть механизмы для отображения прогресса: publishProgress().
AsyncTask подвел меня в одном проекте - столько времени на него потратил, а простой Thread - без проблем решил задачу

Вопрос остался: теперь я создал ProgressBar которые отображает статус загрузки
теперь такая же фигня
1.функция вызвана из onCreate, создает отдельный поток и в потоке через runOnUiThread я выставляю значение ProgressBar
ВСЕ ОТОБРАЖАЕТСЯ
2.функция вызвана по тачу на ListView создает отдельный поток и через runOnUiThread я выставляю значение в ProgressBar
отображение идет ТОЛЬКО после ВЫПОЛНЕНИЯ потока, причем все значения отображаются друг за другом-кароче ведет себя как и Toast

я понять этого эффекта не могу,если кто сталкивался - скажите как выкрутились

Ответить