2012-04-25 2 views
0

Мне удалось вызвать процесс post post в новом потоке, но переменные, отправленные по почте, зависят от значения другой переменной posttype, заданной до запуска этого потока.Android SDK. Доступ к старой переменной в новой теме

переменные, которая определяет, какие значения передаются по месту службы устанавливаются как: public String posttype = "load";

перед тем новый поток запускается posttype устанавливаются либо как «нагрузка» или «разгрузить». Исходя из этих значений, определяются данные, отправленные по почте.

новая функция потока я использую от: http://android-developers.blogspot.com/2009/05/painless-threading.html

Я использую вторую функцию, показанную на работоспособном из приведенной выше ссылки.

Внутри первого run() Я отправил переменные по http. Внутри второго run() Я разбираю возвращаемую переменную.

Проблема заключается в следующем: я не могу получить доступ к значению posttype, и оператор else внутри новой функции потока всегда выбирается, потому что оператор if не может получить доступ к переменному posttype.

Как сделать переменную posttype поистине глобальной или полезной по новой теме?

Спасибо,

+1

Не пытайтесь связываться с потоками через глобальные переменные, подобные этому. Самое лучшее, что может случиться, это то, что он, очевидно, терпит неудачу каждый раз. Хуже всего то, что, похоже, работает, и вы его доставляете. –

ответ

1

Если я правильно, вы не можете получить доступ к переменной, потому что это не окончательный. Если это так, вы можете взять конечную переменную того же типа, что и posttype, присвоить ей это значение и использовать его во втором прогоне. Чтобы уточнить мой вопрос, ответьте на этот вопрос: final variable issue in an inner class

Слушатель в этом случае запускается в ситуации, когда применяется такая же логика.

+0

Может быть, это было проще! Благодарю. Для других, единственное изменение, которое я сделал, заключалось в добавлении 'final String posttype2 = posttype;' INSIDE к оператору 'run()' для нового потока. Оператор 'if' нового потока смог правильно прочитать posttype2 (косвенно posttype), потому что posttype2 устанавливается в posttype каждый раз, когда поток выполняется. –

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

  • Нет связанных вопросов^_^