Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
vitaha
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 8
#1

Потоки. Доступ к переменным - Android

15.07.2015, 20:03. Просмотров 294. Ответов 2
Метки нет (Все метки)

Помогите с вопросом о видимости переменных. Я создал поток внутри класса Activity. Теперь не могу обратиться из потока к объявленым переменным во внешнем классе(Activity). Вот код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
       public class MainActivity extends Activity {
 
 
       public boolean FORM_OPEN = false;
 
       protected void onStart() {
 
        FORM_OPEN = true;
        getMesFromServices threadMesClass = new getMesFromServices();
        threadMes = new Thread(threadMesClass);
        threadMes.start();
        
        super.onStart();
        
    }
 
        class getMesFromServices implements Runnable {
 
        @Override
        public void run() {
            
 
            if (FORM_OPEN) { // эту переменную поток не понимает. я присваиваю ей true перед вызовом потока, а в потоке она false
                           // тут код
            }
 
        }
    }
}
До этого я ссылался на правило что ВНУТРЕННИЙ КЛАСС ИМЕЕТ ДОСТУП К ПЕРЕМЕННЫМ ВНЕШНЕГО. но походу к потокам это не относится. Спасибо за помощь!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2015, 20:03     Потоки. Доступ к переменным
Посмотрите здесь:

Android Потоки
Android Потоки и post запрос
Android потоки
Потоки и AlertDialog Android
Потоки в фрагменте не запустить? Android
Android Как правильно присвоить переменным данные для использования с другом методе?
Потоки. Thread и runOnUiThread Android
Android Таймер и параллельные потоки
Взять символы с EditText и прировнять их к переменным.Как это можно сделать? Android
Как получить возможность обращатся к глобальным переменным? Android
Потоки. Canvas Android
Потоки не работают параллельно Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
15.07.2015, 20:17     Потоки. Доступ к переменным #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Название класса должно начинаться с большой буквы. Попробуй так сделать:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MainActivity extends Activity implements Runnable {
 
 
public boolean FORM_OPEN = false;
 
protected void onStart() {
 
FORM_OPEN = true;
threadMes = new Thread(this);
threadMes.start();
 
super.onStart();
 
}
 
 
@Override
public void run() {
 
 
if (FORM_OPEN) { // эту переменную поток не понимает. я присваиваю ей true перед вызовом потока, а в потоке она false
// тут код
}
 
}
 
}
vitaha
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 8
16.07.2015, 16:59  [ТС]     Потоки. Доступ к переменным #3
Попробую! завтра отпишусь о результате. Спасибо Mikalai!

Добавлено через 20 часов 17 минут
Этот код сработал на ура. теперь поток видит переменные.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MainActivity extends Activity implements Runnable {
 
 
public boolean FORM_OPEN = false;
 
protected void onStart() {
 
FORM_OPEN = true;
threadMes = new Thread(this);
threadMes.start();
 
super.onStart();
 
}
 
 
@Override
public void run() {
 
 
if (FORM_OPEN) { // эту переменную поток не понимает. я присваиваю ей true перед вызовом потока, а в потоке она false
// тут код
}
 
}
 
}
Еще раз спасибо Mikalai!
Yandex
Объявления
16.07.2015, 16:59     Потоки. Доступ к переменным
Ответ Создать тему
Опции темы

Текущее время: 04:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru