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

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

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

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

15.07.2015, 20:03. Просмотров 309. Ответов 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
именно к переменным, а не к константам. Нашел совет объявить класс на основе Application public class MyApplication extends...

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

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

Потоки - Программирование Android
Как сделать отдельный поток, наподобие такого?? class MyTask extends AsyncTask<Void, Spanned , Void> { protected void...

потоки - Программирование Android
вообщем есть поток в котором не важно что выполняется, важно что в нем есть view компонент к которому нужно получить доступ ,а доступ к...

Потоки не работают параллельно - Программирование Android
Написал я такой кусок кода (все это внутри класса MainActivity): class CalcFiveSecClass extends AsyncTask<Void, Void, String> { ...

Таймер и параллельные потоки - Программирование Android
Добрый день, сразу оговорюсь, что прошёлся поиском по темам с запросом "таймер", "потоки" и т.д. Разрабатываю приложение с Canvas и...

Потоки и post запрос - Программирование Android
Добрый вечер всем. Уже два дня не могу разобраться с выполнением post запроса на андроиде. Перечитал кучу статей. Знаю что с андроида 2.3...

Потоки. Thread и runOnUiThread - Программирование Android
Пытаюсь в отдельном потоке выполнять действия и во время этого показывать ProgressBar. public void runProcess() { //запускаем...

Потоки при работе с камерой - Программирование Android
Что будет есть в public void onPictureTaken(byte data, Camera camera) повесить тяжелые расчеты, data будет все время меняться или...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
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     Потоки. Доступ к переменным
Ответ Создать тему
Опции темы

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