|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
|
Написать программу, в которой основную работу производит сервис07.01.2014, 00:29. Показов 2759. Ответов 13
Метки нет (Все метки)
Здравствуйте.
Возникла задача написать программу в которой основную работу производит сервис. Также требуется Activity для настройки параметров сервиса. Создал проект с Activity, тут же создал сервис (во всех методах заглушки). Работает. Собственно не понятно куда писать код самого сервиса. Функция onStartCommand() сказано должна возвращать тип инт (для меня это START_STICKY, что бы ОС запускало сервис в случае сбоев или нехватки памяти). Код START_STICKY будет возвращен системе после отработки функции onStartCommand(). (1) То есть в этой функции нельзя писать длительно исполняющийся код? (2) Тогда как поступить? У меня только одна идея, в onStartCommand() запустить второй поток и уже писать всё в нем (назовём его исполняющим). Правильно? Тогда как не создавать другие потоки (мне нужен один) при повторных запусках onStartCommand()? (3) Если в исполняющем потоке надо работать с интернет, все вызовы опять надо заворачивать в AsyncTask? (4) как тогда из Activity передать данные (настройки работы) в исполняющий поток? В сервис через Bind, а из сервиса в исполняющий поток через handle? Мои размышления верные? Так и делают или есть более правильные подходы?
0
|
|
| 07.01.2014, 00:29 | |
|
Ответы с готовыми решениями:
13
Написать программу которая производит сортировку алгоритма Написать основную программу main, которая
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 07.01.2014, 00:47 | |
|
http://startandroid.ru/ru/urok... rimer.html
С этого урока и дальше.
0
|
|
|
Командир зеленых роботов
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
|
|||||||||||
| 07.01.2014, 10:43 | |||||||||||
01-07 10:35:07.615: I/System.out(17408): Hello from Thread[IntentService[MyThreadName],5,main] 01-07 10:35:07.735: I/System.out(17408): Hello from Thread[IntentService[MyThreadName],5,main] 01-07 10:35:07.845: I/System.out(17408): Hello from Thread[IntentService[MyThreadName],5,main] 01-07 10:35:07.975: I/System.out(17408): Hello from Thread[IntentService[MyThreadName],5,main]
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
||
| 07.01.2014, 16:50 [ТС] | ||
|
Спасибо, перевариваю инфу..
Добавлено через 15 минут Или то и был намек на IntentService?
0
|
||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 07.01.2014, 17:48 | |
|
Прочтите внимательно уроки что я вам предложил, в них все расписано.
0
|
|
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
||
| 08.01.2014, 02:00 [ТС] | ||
|
Мне надо создать приложение в меню которого можно настраивать параметры. Здесь же есть сервис, который эти параметры читает, а приложение сообщает сервису о изменении настроек. Сервис перечитывает параметры и работает дальше. Всё это пишется как одна программа, Active и отдельно сервис в котором есть BroadcastReceiver. Вся программа будет в классе сервиса в том числе переменные. BroadcastReceiver устанавливает переменную статуса соединения (wifi, mobile, none, etc) далее уже в другом потоке который будет создан скорее всего в OnCreate() надо работать со всем этим. Работа будет в виде, если есть связь, что-то делаем, юзайем инет. Когда всё сделали, надо как то этот поток остановить или приостановить. Из спячки этот поток надо выводить или если пришло нужное сообщение от BroadcastReceiver или пришло сообщение с сети (тут пока не ясно, от сервера, в общем случае от другого компа).
0
|
||
|
Командир зеленых роботов
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
|
|||
| 08.01.2014, 10:55 | |||
|
Вы можете создать внутри сервиса любой public метод и вызывать его откуда угодно. Нужно только получить ссылку на ваш сервис.
0
|
|||
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
||||||||
| 08.01.2014, 13:22 [ТС] | ||||||||
|
Написал BroadcastReceiver что бы получать сообщения о подключениях. Было куча ошибок пока не вывел класс в отдельный файл. Если встраиваю этот класс в класс сервиса, андроид не может найти класс ресивера, он почему то ищет именно файл. Пытался подставить в манифесте путь
Андроид ругается, всё равно ищет файл ConnectivityReceiver.java. Как эту проблему преодолеть? Мне желательно сделать его внутренним. Добавлено через 7 минут
0
|
||||||||
|
Командир зеленых роботов
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
|
||||||||
| 08.01.2014, 13:41 | ||||||||
0
|
||||||||
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
|||||||
| 08.01.2014, 14:38 [ТС] | |||||||
Added: Оказывается ничего не надо . Заработало!
0
|
|||||||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 08.01.2014, 17:30 | |
|
Ничего вы не читали! Все в указанных мною уроках подробно описано.
0
|
|
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
||||||
| 09.01.2014, 21:12 [ТС] | ||||||
|
Есть метод onReceive BroadcastReceiver-а, в нем я хочу запустить поток.
Написал отдельный Runnable класс.., вообщем для примера:
Почему я получаю такую ошибку? Специально сделал отдельный поток, с onReceive() это ни как не связано. Переделал с Handle, тоже самое.
0
|
||||||
|
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
|
||
| 09.01.2014, 23:12 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
|
|||||||
| 10.01.2014, 14:26 [ТС] | |||||||
|
Если убрать запуск потока то всё работает как задумано. Но вот с запуском проблемы. Ошибка исчезает если запуск задачи выполняется в отдельном потоке (не так как я в начале это делал)
Всё равно получаю ошибку, но другую.. java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() Добавлено через 14 минут вроде разобрался Добавлено через 12 часов 31 минуту Долго ли коротко..)) в общем "скелет" написан, заработал как я и хотел и всё написанное "мяско" к нему тоже, всем спасибо за помощь!!! Рутина закончилась (наивный да?), самое интересное и сладкое впереди, писать саму функциональность
0
|
|||||||
| 10.01.2014, 14:26 | |
|
Помогаю со студенческими работами здесь
14
Написать перегруженные функции и основную программу, которая их вызывает.В С++
Написать программу, которые производит подсчет суммы элементов вектора, больших числа 7 написать основную программу int main , для проверки методов класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|