Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
vitaha
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 8
1

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

15.07.2015, 20:03. Просмотров 930. Ответов 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
                           // тут код
            }
 
        }
    }
}
До этого я ссылался на правило что ВНУТРЕННИЙ КЛАСС ИМЕЕТ ДОСТУП К ПЕРЕМЕННЫМ ВНЕШНЕГО. но походу к потокам это не относится. Спасибо за помощь!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2015, 20:03
Ответы с готовыми решениями:

Как получить возможность обращатся к глобальным переменным?
именно к переменным, а не к константам. Нашел совет объявить класс на основе...

Взять символы с EditText и прировнять их к переменным.Как это можно сделать?
Кто знает как можно осуществить вот это. Например: Есть поле editText ...

Как правильно присвоить переменным данные для использования с другом методе?
Привет всем! Есть такая проблема... есть push уведомления, и когда приходит...

Потоки
Как сделать отдельный поток, наподобие такого?? class MyTask extends...

потоки
вообщем есть поток в котором не важно что выполняется, важно что в нем есть...

2
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 670
15.07.2015, 20:17 2
Лучший ответ Сообщение было отмечено vitaha как решение

Решение

Название класса должно начинаться с большой буквы. Попробуй так сделать:

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
// тут код
}
 
}
 
}
1
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!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2015, 16:59

Потоки и AlertDialog
Помогите, пожалуйста, бьюсь уже несколько дней. Создаю файловый менеджер. Это...

Потоки. Canvas
Добрый день. Подскажите, как реализовать обработку изменения цвета с помощью...

Потоки. Thread и runOnUiThread
Пытаюсь в отдельном потоке выполнять действия и во время этого показывать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru