Перейти к содержанию
Fire Monkey от А до Я
  • 0

Запустить приложение из сервиса или показать форму


albionseo

Вопрос

Привет, создал сервис на delphi 10 seattle, сервис запускается из приложения, после само приложение можно закрыть или свернуть, но сам сервис работает все время, из него я делаю парсинг сайта и при определенном значении мне нужно уведомить пользователя об этом, причем сделать это моментально используюя вибрацию, звук и т.д., я думаю что нужно как то вновь запустить приложение и из него уже это делать, но как собственно запустить приложение?

Изменено пользователем albionseo
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

 

надо отправить push уведомление пользователю и все!

делов то!

 

вконтакте ничего не посылает в фоне, push шлет, открыли его идет запрос!

это Вы по-моему не понимаете!

у меня вконтакте не запущено, но когда мне пишут сообщение то появляется уведомление, тот же ватсап и вайбер, они висят сервисами, сами приложения закрыты, как они по вашему принимают сообщения, я блять уже заебался объяснять.

Построю вопрос по другому: приложение не запущено, как он выводит уведомления о том что на сервере сообщение пользователю

 

Прочитайте что вам пишут. Загуглите Apple Push Notification Service (для IOS) и Google Cloud Messaging (для Android). При помощи этих сервисов можно присылать сообщение на устройство и абсолютно не важно запущено ваше приложение или нет, сервис это или нет.

Изменено пользователем xenon54
Ссылка на комментарий
  • 0

Окей, окей... приведу простой пример. Например будильник или та же "Напоминалка", эти приложения работают без интернета, поставив в них задачи, например в будильнике это разбудить в 8:30, а в напоминалке "Пойти в магазин" в 9:30. Когда я поставил эти задачи, я могу их убрать из диспетчера открытых приложений ( Когда зажимаешь клавишу меню вроде, свайпом убираешь запущенные приложения, тем самым освобождая память ), когда я их убрал из памяти, форма у них закрылась, всё, она не работает, она "убилась", но сервис, который держит задачу, он ждёт время и в 8:30 будильник включается, а в 9:30 в уведомлениях выводится информация о том, что пора идти в магазин. 

А теперь я плавно иду к сути своего приложения, моё приложения использует интернет, ТОЛЬКО для отправки get запрос на сервера ВК, то есть метод отправки сообщений тот же. Моё приложение как будильник, как напоминалка, но вместо разбудить и напомнить, он должен просто отправить get запрос и всё.

Уж после этого, я думаю вы поняли о чём я говорю

Ссылка на комментарий
  • 0

Все в кучу намешали. То нужно показать уведомление пользователю, то отправить гет запрос в фоновом режиме.

чего намешали то? специально разжевывали все по пунктам

Опишу задачу в общем что должно быть на выходе конкретно у меня

Мне нужно чтобы на телефоне работало приложение все время и получало от сервера инфу(ни какие то ****** пуш уведомления, это совсем не то),

 когда начал разбираться мне сказали что для фоновой работы нужны сервисы, ок, добавил сервис, все ******, приложение запускается, из него же и запускается сервис, андроид выгружает приложение из памяти, сервис остается работать. Все как надо.

Дальше я ищу инфу как мне из сервиса отправить гет запрос, т.к. он должен быть "все время на связи с сервером", но при добавлении любых компонентов приложение вылетает. Потом кто то написал что нужно делать через интенты, начал читать, но чет я там ничего найти не могу.

 

-----------------------

Модератор: Предупреждение за мат. Читайте правила!

Изменено пользователем Andrey Efimov
Предупреждение
Ссылка на комментарий
  • 0

не надо из своей мобилы сервак делать! не получится!

получите уведомление, откроете приложение, отправите get запрос!

 

и не надо тут материться, батарея на ногу не упала!

Ссылка на комментарий
  • 0

попробуй не кидать компонент на форму, а сделать все руками. например, чистая форма, при запуске сервиса создать в сервисе свой отдельный поток. в нем руками создать idHttp и в этом же потоке через нужные промежутки руками созданным idHttp слать запрос. 

Ссылка на комментарий
  • 0
йомайо, сколько крику то :)
столько не заходил - а тут во какой срач :)
разбираете classes.dex(гуглим), ложите все в отдельное место, берете отдельно fmx.jar, декомпилируете, собираете проект в андроид студии, 
открываете com\embarcadero\firemonkey\notifications\FMXNotificationPublisher.java
переписываете метод PublishGCM, которые обрабатывает пуши(можете туда хоть открытие приложения вставить, хоть отправку ваших гет запросов)
билдите
из проекта вытаскиваете
\fmx\build\intermediates\classes\debug\com\embarcadero\firemonkey\notifications\FMXNotificationPublisher.class
кладете его назад в fmx.jar
пересобираете classes.dex (есть спец. утилитки)
у себя в деплое меняете classes.dex на ваш новый. 
Всё. дальше сами.
 
п.с. и не надо никаких лишних сервисов писать. уже абракадаброй добавлен пушевский сервис, который наверняка понадобиться
п.с. фаирманки - зло :)
Ссылка на комментарий
  • 0

 

йомайо, сколько крику то :)
столько не заходил - а тут во какой срач :)
разбираете classes.dex(гуглим), ложите все в отдельное место, берете отдельно fmx.jar, декомпилируете, собираете проект в андроид студии, 
открываете com\embarcadero\firemonkey\notifications\FMXNotificationPublisher.java
переписываете метод PublishGCM, которые обрабатывает пуши(можете туда хоть открытие приложения вставить, хоть отправку ваших гет запросов)
билдите
из проекта вытаскиваете
\fmx\build\intermediates\classes\debug\com\embarcadero\firemonkey\notifications\FMXNotificationPublisher.class
кладете его назад в fmx.jar
пересобираете classes.dex (есть спец. утилитки)
у себя в деплое меняете classes.dex на ваш новый. 
Всё. дальше сами.
 
п.с. и не надо никаких лишних сервисов писать. уже абракадаброй добавлен пушевский сервис, который наверняка понадобиться
п.с. фаирманки - зло :)

 

я боялся что прийдется делать что то подобное, бля...

Ссылка на комментарий
  • 0

я боялся что прийдется делать что то подобное, бля...

 

)))) вам же master webs писал про NotificationCenter.

может вы путаете Push и то что он сказал? Локальные сообщения и есть думаю не плохое решение...ничего перебильдить или собирать не надо.

Также вам точно не нужны Push.

Вы получили в сервисе сигнал, создавайте локальное сообщение и будет там все и вибро и звук все как у Push.

Затем по клику сообщения и откроется ваша программа...хз ну я думаю именно как то так пашут ватсапы и виберы.

Кстати в демках делфи у вас как раз про локальные есть пример.

Изменено пользователем rustam_d
Ссылка на комментарий
  • 0

 

я боялся что прийдется делать что то подобное, бля...

 

)))) вам же master webs писал про NotificationCenter.

может вы путаете Push и то что он сказал? Локальные сообщения и есть думаю не плохое решение...ничего перебильдить или собирать не надо.

Также вам точно не нужны Push.

Вы получили в сервисе сигнал, создавайте локальное сообщение и будет там все и вибро и звук все как у Push.

Затем по клику сообщения и откроется ваша программа...хз ну я думаю именно как то так пашут ватсапы и виберы.

Кстати в демках делфи у вас как раз про локальные есть пример.

 

это да. просто человек спросил "как запустить приложение из сервиса". 

сейчас уже есть возможность писать в студии свой сервис. раньше не было - поэтому я и делал способом, который описал выше.

по поводу решаемой задачи: а зачем вообще парсить сайт с приложения ? обычно такими вещами занимается какой-нить веб-сервис\app-сервер.

при получении результата - отправлять подписчикам уведомление с результатом, а он уже реагирует там себе как хочет. зачем вешать логику на клиента ? а если логика меняется ? пересобирать клиента и перевыкладывать в маркет ? каждый должен заниматься своей работой. не стоит вешать логику парсинга(или еще чего-то часто изменяемого) на клиент.

ну это только мое мнение.

Ссылка на комментарий
  • 0

http://community.embarcadero.com/blogs/entry/download-an-image-in-background-with-android-services

 

пример сервиса на андроид

 

 

это да. просто человек спросил "как запустить приложение из сервиса". 

сейчас уже есть возможность писать в студии свой сервис. раньше не было - поэтому я и делал способом, который описал выше.

по поводу решаемой задачи: а зачем вообще парсить сайт с приложения ? обычно такими вещами занимается какой-нить веб-сервис\app-сервер.

при получении результата - отправлять подписчикам уведомление с результатом, а он уже реагирует там себе как хочет. зачем вешать логику на клиента ? а если логика меняется ? пересобирать клиента и перевыкладывать в маркет ? каждый должен заниматься своей работой. не стоит вешать логику парсинга(или еще чего-то часто изменяемого) на клиент.

ну это только мое мнение.

наведу свой пример  мое приложение  подключается к сайту клиента собирает заказы  в настройках может быть несколько магазинов   приложение работает  с json формат строгий и не меняется  как в таком случае быть Push отпадает либо поднимать свой сервер и давать клиентам api  с которым они смогут работать оповещая  менеджеров магазина о заказах. на ведре можно поднять сервис а как быть с ios ? 

Изменено пользователем master webs
Ссылка на комментарий
  • 0

http://community.embarcadero.com/blogs/entry/download-an-image-in-background-with-android-services

 

пример сервиса на андроид

 

 

это да. просто человек спросил "как запустить приложение из сервиса". 

сейчас уже есть возможность писать в студии свой сервис. раньше не было - поэтому я и делал способом, который описал выше.

по поводу решаемой задачи: а зачем вообще парсить сайт с приложения ? обычно такими вещами занимается какой-нить веб-сервис\app-сервер.

при получении результата - отправлять подписчикам уведомление с результатом, а он уже реагирует там себе как хочет. зачем вешать логику на клиента ? а если логика меняется ? пересобирать клиента и перевыкладывать в маркет ? каждый должен заниматься своей работой. не стоит вешать логику парсинга(или еще чего-то часто изменяемого) на клиент.

ну это только мое мнение.

наведу свой пример  мое приложение  подключается к сайту клиента собирает заказы  в настройках может быть несколько магазинов   приложение работает  с json формат строгий и не меняется  как в таком случае быть Push отпадает либо поднимать свой сервер и давать клиентам api  с которым они смогут работать оповещая  менеджеров магазина о заказах. на ведре можно поднять сервис а как быть с ios ? 

http://lfgonzalez.visiblogs.com/2014/11/radstudio-xe6xe7-remote-push-notifications-gcm-y-apns/

?

Изменено пользователем ruslan
Ссылка на комментарий
  • 0

Для каждого приложения, в котором будет интегрирован механизм push-уведомлений, необходимо создать новый App ID и provisioning profile, а также SSL-сертификат для сервера.

 

 у каждого пользователя  свой сайт тут явно проблема  будет

Ссылка на комментарий
  • 0

но приложение то одно ? нет ?

один клиент - один универсальный клиент: один appId, один profile.

один сервер - один универсальный контейнер бизнес-логики(постоянно чёто парсит), хранит инфу о клиентах(clientId, deviceId, сайты для парсинга), рассылает пуши.  один ssl-сертификат.

вроде все просто и понятно.

или я чего-то не понимаю ?

Ссылка на комментарий
  • 0

я чет в край запутался, последний раз я на delphi 7 работал, так что не кидайтесь палками, опишу задачу, может я не верное решение взял,

есть кнопка на сайте, как только по ней нажали нужно уведомить пользователя об этом, здесь ключевой момент МОМЕНТАЛЬНО, я сделал приложение которое отправляет гет раз в секунду для получения определенного кода, когда код равен определленному значению - значит кнопка нажата, нужно "вибрировать", при этом этот код нужно показать пользователю, но т.к. приложение не может висеть в памяти вечно, то я вычитал что решение этому сервис(по крайней мере пуши, я их кстати не использовал работают с большой задержкой, тут скажем так важна каждая секунда

 

http://community.embarcadero.com/blogs/entry/download-an-image-in-background-with-android-services

 

пример сервиса на андроид

 

 

это да. просто человек спросил "как запустить приложение из сервиса". 

сейчас уже есть возможность писать в студии свой сервис. раньше не было - поэтому я и делал способом, который описал выше.

по поводу решаемой задачи: а зачем вообще парсить сайт с приложения ? обычно такими вещами занимается какой-нить веб-сервис\app-сервер.

при получении результата - отправлять подписчикам уведомление с результатом, а он уже реагирует там себе как хочет. зачем вешать логику на клиента ? а если логика меняется ? пересобирать клиента и перевыкладывать в маркет ? каждый должен заниматься своей работой. не стоит вешать логику парсинга(или еще чего-то часто изменяемого) на клиент.

ну это только мое мнение.

наведу свой пример  мое приложение  подключается к сайту клиента собирает заказы  в настройках может быть несколько магазинов   приложение работает  с json формат строгий и не меняется  как в таком случае быть Push отпадает либо поднимать свой сервер и давать клиентам api  с которым они смогут работать оповещая  менеджеров магазина о заказах. на ведре можно поднять сервис а как быть с ios ? 

кажется это уже похоже на правду, буду разбираться

Ссылка на комментарий
  • 0

а если у клиента ios?

Блин, а че с ней не так то ? Вроде ж все расписал... Читай предыдущую страницу

Так я же не тебе! Риторика!

А вы простите, решили вернуться опять в delphi, вроде уходили на студию?

Ссылка на комментарий
  • 0

Я бы дропнул нахрен сразу такое приложение, которое уничтожает батарейку своим сервисом который каждую секунду бесконечно шлет гет запросы.

Ссылка на комментарий
  • 0

Я бы дропнул нахрен сразу такое приложение, которое уничтожает батарейку своим сервисом который каждую секунду бесконечно шлет гет запросы.

не согласен есть разные типы приложений

Ссылка на комментарий
  • 0

Я бы дропнул нахрен сразу такое приложение, которое уничтожает батарейку своим сервисом который каждую секунду бесконечно шлет гет запросы.

во-во ! про что я в принципе и говорю уже 3-ю страницу :)

 

 

Я бы дропнул нахрен сразу такое приложение, которое уничтожает батарейку своим сервисом который каждую секунду бесконечно шлет гет запросы.

не согласен есть разные типы приложений

 

парень, ты о чем вообще ? ты хочешь своим сервисом каждую секунду слать запросы ? ты хоть понимаешь, насколько быстро будет садиться батарея ? а еще это нифига не гарантирует стабильную работу, т.к. может пропадать сеть, падать уровень сигнала, другие сервисы могут полезть в это же время со своими запросами. Зачем это делать ? я не понимаю. Я же тебе предложил решение твоей проблемы. В чем трудности ?

Изменено пользователем ruslan
Ссылка на комментарий
  • 0

 

Я бы дропнул нахрен сразу такое приложение, которое уничтожает батарейку своим сервисом который каждую секунду бесконечно шлет гет запросы.

во-во ! про что я в принципе и говорю уже 3-ю страницу :)

 

 

Я бы дропнул нахрен сразу такое приложение, которое уничтожает батарейку своим сервисом который каждую секунду бесконечно шлет гет запросы.

не согласен есть разные типы приложений

 

парень, ты о чем вообще ? ты хочешь своим сервисом каждую секунду слать запросы ? ты хоть понимаешь, насколько быстро будет садиться батарея ? а еще это нифига не гарантирует стабильную работу, т.к. может пропадать сеть, падать уровень сигнала, другие сервисы могут полезть в это же время со своими запросами. Зачем это делать ? я не понимаю. Я же тебе предложил решение твоей проблемы. В чем трудности ?

 

это ты о чем, я описал ситуацию есть  сервер клиента  есть скрипт  интерфейс api который он скачивает и устанавливает  к себе на сервер есть приложение, не каждый клиент  захочет отправлять оповещения  через левый сервер 

Ссылка на комментарий
  • 0

:wacko:

да еп..... 

ты хоть запятые поставь.

что значит "сервер клиента" ?

ниче не понял, что ты хотел сказать.

хотя нет. одну фразу разобрать можно : "не каждый клиент  захочет отправлять оповещения  через левый сервер"

можешь по-подробнее объяснить ? тут с пунктуацией вроде норм, но я ничего не могу понять

Ссылка на комментарий
  • 0

пользователь качает приложение в app store или play market

на  сайте  разработчика качает php скрипт

устанавливает на свой сайт файл  открывает доступ к  бд формат (JSON)

 

пользователь может быть  не один сайтов  подключенных в приложении тоже  может быть несколько

 

post-1039-0-96433600-1443674589.jpg

Изменено пользователем master webs
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...