Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с установкой Таймаута в Http connection 
:(
    Опции темы
PODLIY16
Дата 10.8.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



У меня есть Http соеденение, работает нормально когда есть интернет. Как можно сделать так чтобы если в течении 30 секунд я не получал ответ, то выводить типа нет соединения с сервером? Походу это как-то через Timer надо реализовывать но что-то не пойму как :(


И еще можно как-то форматировать текст? то есть могу я его сделать красным или например жирным/курсивом?

PM MAIL   Вверх
sanboll
Дата 10.8.2010, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: 1
Всего: 1



если ты работаешь в канве - то можно, а если в форме - то нельзя.

в канве:

Код

public void paint(Graphics g)
{
 g.setColor(0xffffff);
 g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0,0,0);  //черный цвет
Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL); // маленький жирный шрифт
g.setFont(font);
g.drawString("***", 0, 0, 0);
}


для комбинирования - например жирный и курсив и подчеркивание нужно указывать вторым параметром Font.STYLE_BOLD|Font.STYLE_ITALIC|Font.STYLE_UNDERLINED.

цвет - это совсем легко, строка рисуется тем цветом, который стоит в Graphics.
либо указываешь отдельно три компоненты RGB - g.setColor(int r,int g,int b), либо - одним шеснадцатиричным числом - g.setColor(int rgb).

т.е. если ты собираешься установить красный цвет, пиши либо g.setColor(255,0,0) либо g.setColor(0xff0000).

PM MAIL   Вверх
PODLIY16
Дата 10.8.2010, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



в том то и дело что не в канве :(
PM MAIL   Вверх
sanboll
Дата 10.8.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: 1
Всего: 1



в листе - можно, в форме - никак. с таймаутом - создаешь класс - Timer и интерфейс TimerListener - 
там 1 абстрактный метод- void onTimer().
Код

public class Timer implements Runnable 
{
  private boolean req;
  private Thread t;
  private TimerListener tl;
  private long d;

    public Timer(long time, TimerListener listener)
    {  
       req = true;
       d = time;
       tl = listener;
       t = new Thread(this); 
       t.start();
    }

   public void run() 
   {
     try {
      t.sleep(d);
     if(req)
      tl.onTimer(); } catch(Exception ex) { ex.printStackTrace(); }
   }

   public void cancel()
   {
    req = false;
   }
}


вот а в том классе, где ждется ответ от сервера - наследуется интерфейс TimerListener и как надо ждать ответ от сервера - вызывается new Timer(30000, this). Если ответ от сервера получен - то у тамера вызывается метод cancel().
если ответ не получен в течении 30000 мс (30 сек) - то вызывается onTimer - можно выводить сообщение что сервер глючит.

PM MAIL   Вверх
PODLIY16
Дата 10.8.2010, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



ок спс, позже гляну подробней, и наверно перейду на canvas, т.к. вывод многострочного текста в форме тоже не зделаешь :(
PM MAIL   Вверх
sanboll
Дата 11.8.2010, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: 1
Всего: 1



Как не сделаешь???
form.append("одна строка\nвторая строка");
PM MAIL   Вверх
PODLIY16
Дата 11.8.2010, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



я строку получаю от сервера.

то есть надо: 

form.append (ReplyFromServer);

Добавлено через 11 минут и 52 секунды
sanboll

создал класс Timer, но он у мя не находит TimerListener.

Сори за нубский вопрос, но создание этого потока не прервет работу соединения, которое находиться в отдельном потоке?
PM MAIL   Вверх
sanboll
Дата 11.8.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: 1
Всего: 1



1. В каком package находятся Timer  и TimerListener? 
2. Нет, ничего страшного не случится, таймер в отдельном треде
PM MAIL   Вверх
sanboll
Дата 11.8.2010, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: 1
Всего: 1



а ты интерфейс-то сделал?

public interface TimerListener 
{
 abstract public void onTimer();
}
PM MAIL   Вверх
ivanovpv
Дата 11.8.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(sanboll @  10.8.2010,  17:51 Найти цитируемый пост)
а если в форме - то нельзя.

Да ладно в форме нельзя... Уж изменить стиль то ведь можно!
Код

StringItem cp=new StringItem("", "test");
cp.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_ITALIC, Font.SIZE_SMALL)); 




--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
PODLIY16
Дата 11.8.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



cp.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_ITALIC, Font.SIZE_SMALL)); 

Cпс за это!!!


public interface TimerListener 
{
 abstract public void onTimer();


нет не сделал, а где это надо делать?  сделал в классе таймер в конце, заработало, но когда наследую интерфейс пишет:


cannot find symbol
symbol: class TimerListener
public class MyClass extends MIDlet  implements TimerListener, CommandListener, ItemCommandListener

что не правильного? и почему он пишет что не найден класс ТаймерЛистенер, ведь это интерфейс или так это и должно быть? бля какой я тупой...

Добавлено через 3 минуты и 2 секунды
"1. В каком package находятся Timer  и TimerListener? "

всмысле? у мя класс таймер просто в папке SRC моего проекта, а таймер листенер внутри таймера.
PM MAIL   Вверх
PODLIY16
Дата 12.8.2010, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



Код

                Timer timer = new Timer ();
                MyTimerTask mTT = new MyTimerTask ();
                private class MyTimerTask extends TimerTask {
                
                    
                

                    
                private void makeConnection (String postdata2) throws IOException {
                try {
                System.out.println ("MakeTimer");
                timer.schedule(mTT, 30 * 1000) ; // ur desired timeout.
                System.out.println ("MakeConnection");
                HttpsConnection (postdata2,URLRSA);
                
                } catch (Exception e) {
                timer.cancel();
                mTT.cancel();
                throw new IOException(e.getMessage());
                } finally {
                }
                }

                public void run () {
                try {
                makeConnection ("S");
                }
                catch (IOException ioe) {
                mTT.cancel();
                System.out.println ("OfflineTask");
                }
                }
                
            }


 Вот реализация того что мне нужно было, где HttpConnection - метод в котором отрабатываеться соединение
PM MAIL   Вверх
sanboll
Дата 12.8.2010, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 15.6.2010

Репутация: 1
Всего: 1



TimerListener - отдельный интерфейс, в отдельном файле TimerListener.java
PM MAIL   Вверх
PODLIY16
Дата 12.8.2010, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.8.2010

Репутация: нет
Всего: нет



понятно ну спс большое
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0842 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.