Страница 1 из 1

проблема с Toast

Добавлено: 09 фев 2015, 22:59
Rustam
Приветствую!
в 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 - при слабом соединении - юзер думает, что приложение подвисло

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

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

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

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

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

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

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

Добавлено: 14 фев 2015, 20:09
doter.ua
sc0_prjCreateAdp ну и название )
А вообще в уроках про хендлер даже пример есть, где вместо работы sleep. И да, тост - отстойный способ для отображения прогресса.
Так же у асинктаска есть механизмы для отображения прогресса: publishProgress().

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

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

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

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