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

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

Войти
Регистрация
Восстановить пароль
 
Sibmax1988
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 121
#1

Один Executor на все приложение - Программирование Android

18.11.2016, 13:36. Просмотров 315. Ответов 13
Метки нет (Все метки)

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

на вопрос как это все сделать я получил ответ

" класс Application. В onCreate у наследника Application создаёшь пул нитей, далее любая активность, сервис и вообще контекст имеет метод getApplication()."

но в силу своей неопытности не понял что он имеет ввиду
Остается надежда на светлые головы данного форума
Хотелось бы увидеть пример в ввиде кода как это реализуется
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2016, 13:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Один Executor на все приложение (Программирование Android):

Как сделать приложение под все виды экранов - Программирование Android
Здравствуйте уважаемые форумчане! Кто-нибудь может подсказать, как сделать приложение под все виды экранов или поделиться хорошей...

Как адаптировать приложение под все экраны смартфонов? - Программирование Android
Всем привет! Я новичек в java и начал с самого простого-делаю кликер-игру на андроид. Скинул друзьям игру,они мне прислали скриншоты и...

Как создать независимое приложение и собрать все рабочие файлы в один exe - C#
Уважаемые, кто знает - подскажите! Как создать независимое приложение и собрать все рабочие файлы в один exe, чтобы программа могла...

Вставка картинок во все найденные Excel-файлы, попутно объединяя все PDF в один - C#
В общем, в чем проблема. Как сделать, чтоб при запуске программы открывалось окно, в нем выбиралась определенная пака и определенная...

Скопировать из матрицы в один одномерный массив все положительные элементы, а в другой – все отрицательные - Turbo Pascal
Заполнить с клавиатуры двумерный массив на 20 элементов. Скопировать из него в один одномерный массив все положительные элементы, а в...

Как сохранить все wma файлы из папки в один, что бы потом сразу все подгружать? - Scilab
как сохранить все wma файлы из папки в один, что бы потом сразу все подгружать в файл?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
demixdn
195 / 143 / 42
Регистрация: 31.10.2016
Сообщений: 334
18.11.2016, 20:49 #2
Он имел в виду, что такие вещь нужно создавать в классе, который наследуется от Application. И потом указать этот класс в манифесте в корне
<application
android:name=".<you_name_ext_Application>" ...

Подробней тут
http://derevyanko.blogspot.com/2010/12/android_26.html
vxg
Модератор
3155 / 1957 / 218
Регистрация: 13.01.2012
Сообщений: 7,484
19.11.2016, 09:00 #3
непонятно только почему в этом наследнике по условиям задачи нельзя завести статический пулл и что же тогда вместо него хочет препод...
Pablito
2470 / 1915 / 595
Регистрация: 12.05.2014
Сообщений: 6,740
Завершенные тесты: 1
19.11.2016, 11:25 #4
потому что статические поля не гуд, оно же будет null если приложение достанется из бандла
либо наследник Application либо синглтон какой-нибудь
vxg
Модератор
3155 / 1957 / 218
Регистрация: 13.01.2012
Сообщений: 7,484
19.11.2016, 13:59 #5
Паблито, я говорил про статическое поле апликэйшн
Pablito
2470 / 1915 / 595
Регистрация: 12.05.2014
Сообщений: 6,740
Завершенные тесты: 1
19.11.2016, 14:06 #6
я тоже
vxg
Модератор
3155 / 1957 / 218
Регистрация: 13.01.2012
Сообщений: 7,484
19.11.2016, 14:27 #7
Паблито, если оно нулл значит приложение стартует с нуля после полного останова (убийства всех потоков и всего всего до такой степени что в системе ничего от приложения уже нет) или я не прав?
Pablito
2470 / 1915 / 595
Регистрация: 12.05.2014
Сообщений: 6,740
Завершенные тесты: 1
19.11.2016, 20:32 #8
лично я уверен на 99% что система может прибить и Application, а потом при надобности восстановит активити из бандла и тогда поле точно будет пустым
но 1% я все же оставлю, вдруг, окажется, что я ошибся
vxg
Модератор
3155 / 1957 / 218
Регистрация: 13.01.2012
Сообщений: 7,484
20.11.2016, 09:50 #9
Паблито, про активити- вы безусловно правы. я просто говорил про статик поле самого Application - с ним я так понял такого система не вытворяет. разве что речь идет о живущем в Application сервисе который был убит "случайно" и поднят системой обратно так как он стики. но в этом случае вроде все честно - Application должен будет зарыт в могилу на все 100% перед тем как его запустят обратно. если же система прибивает Application без стики-сервисов она его обратно никогда не поднимает вроде
Sibmax1988
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 121
21.11.2016, 06:37  [ТС] #10
demixdn, там используется Синглетон по заданию сиглетоны тоже создавать нельзя т к это плохо (забыл об этом написать)
я написал вот так но не работает

Java
1
2
3
4
5
6
7
8
9
<application
            android:allowBackup="false"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:name=".ExecutorAplication"
            android:theme="@android:style/Theme.Holo.Light" >
        <activity android:name=".ChannelManagementActivity"
                  >
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class ExecutorAplication extends Application {
    private ExecutorService pool;
    @Override
     public void onCreate() {
        super.onCreate();
        pool = Executors.newFixedThreadPool(3);
    }
    ExecutorService getExecutor ()
    {
        return pool;
    }
}
и пытаюсь получить экзекутор
Java
1
getApplication().getExecetor().execute(run);
но не работает
vxg
Модератор
3155 / 1957 / 218
Регистрация: 13.01.2012
Сообщений: 7,484
21.11.2016, 09:10 #11
Sibmax1988, как именно не работает?
Sibmax1988
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 121
21.11.2016, 09:15  [ТС] #12
vxg,
getApplication().getExecetor().execute(run);
нет видит метода getExecutor

Добавлено через 4 минуты
vxg, сработал вот такой вызов
и все удалось ))
пул нитей поднялся и доступен откуда угодно вроде как
((ExecutorApplication) getApplicationContext()).getExecutor().execute(new MyRun(intent));
vxg
Модератор
3155 / 1957 / 218
Регистрация: 13.01.2012
Сообщений: 7,484
21.11.2016, 10:10 #13
Sibmax1988, логично, ведь у Application не было вашего метода, получить к нему доступ можно только приведя ссылку к вашему классу.
Sibmax1988
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 121
21.11.2016, 10:29  [ТС] #14
vxg, ну кто бы знал)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 10:29
Привет! Вот еще темы с ответами:

В один стек занести все четные, в другой – все нечетные числа из динамического массива. Подкорректируйте наработки. - C++ Builder
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Проверить все ли строки матрицы содержат хотя бы один нулевой элемент.Если нет, то заменить все отрицательные - Python
Проверить все ли строки матрицы содержат хотя бы один нулевой элемент.Если нет, то заменить все отрицательные элементы на нулевые

Создать файл целых чисел. За один просмотр файла вывести на экран сначала все четные числа, а потом все нечетные - C (СИ)
Помогите пожалуйста написать программу. Создать файл целых чисел. За один просмотр файла вывести на экран сначала все четные числа, а потом...

Модифицировать разработанное приложение: добавить еще один «летательный» объект - Delphi
Модифицировать разработанное приложение: добавить еще один «летательный» объект, скорость и направление движения объектов должна быть...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.11.2016, 10:29
Ответ Создать тему
Опции темы

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