2012-01-20 4 views
0

У меня возникла некоторая ошибка, когда я пытаюсь вызвать общедоступную переменную в моем потоке.Публичные переменные вызова в Thread

Первый мой код:

public class MyPhoneStateListener extends BroadcastReceiver { 
public String number; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 

     number = "123"; 

     t.start(); 

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

      handler.sendMessage(handler.obtainMessage(SET_TEXT, number)); 

     } 
    }); 
    public Hander handler = new Handler() { 
     [blabla...] 
    } 
} 

Ошибка я получаю: /AndroidRuntime (3737): java.lang.StringIndexOutOfBoundsException: длина = 0; regionStart = 0; regionLength = -1

Я считаю, что это исключение nullpointer или что-то в этом роде.

что я не так?

Спасибо, Prexx

+0

«Я считаю, что это исключение nullpointer или что-то в этом роде». - Нет, это 'StringIndexOutOfBoundsException' - вы зарегистрировали это! К сожалению, вы не указали нам полную трассировку стека или не включили код в обработчик. –

+0

Черт, получил ответ, спасибо в любом случае: http://stackoverflow.com/questions/6309732/java-multi-threading-passing-a-data-structure-to-the-thread – Prexx

+0

Нет, я почти уверен, что это исключение StringIndexOutOfBoundsException. Покажите свой фактический код и полную трассировку стека. – kabuko

ответ

1

Это говорит java.lang.StringIndexOutOfBoundsExeption прямо там. Скорее всего, вы пытаетесь подстроить что-то недопустимым индексом или похожим. Во всяком случае, я сомневаюсь, что винт виноват. Если вы не дадите нам больше информации о том, где именно происходит ошибка (укажите номер строки или что-то еще), я сомневаюсь, что вы получите гораздо больше, чем за помощь.

+0

Эй, спасибо за вашу помощь. он работает сейчас. Я разместил свое решение в комментарии выше. я создал свой собственный Runnable и в конструкторе я установил строку iam, используя мой поток. возможно, ваше право, что есть недопустимый индекс или что-то в этом роде. но причина в том, что я не могу получить доступ к открытой переменной в своем классе из моего потока. – Prexx

Смежные вопросы