Вверх ↑
Этот топик читают: Гость
Ответов: 253
Рейтинг: 0
#1: 2018-10-14 18:58:55 ЛС | профиль | цитата
Подскажите пожалуйста как можно заставить приложение Android работать в фоновом режиме. чтобы всегда могло в любой момент получить данные из TCP.

--- Добавлено в 2018-10-14 19:00:55

Или может можно как-то в случаи ошибки или завершение работы он снова себя запускал

Редактировалось 1 раз(а), последний 2018-10-14 19:00:55
карма: 0

0
Ответов: 1821
Рейтинг: 168
#2: 2018-10-14 21:45:47 ЛС | профиль | цитата
Работу с TCP вынести в сервис, а сам сервис сделать Foreground (точно не помню, есть ли в пакете такая возможность, надо смотреть в Service, ServiceControl или Notification)
карма: 5

0
Ответов: 253
Рейтинг: 0
#3: 2018-10-14 22:29:04 ЛС | профиль | цитата
sаmakacd писал(а):
Foreground

Большое спасибо, кажется разобрался!
карма: 0

0
Ответов: 253
Рейтинг: 0
#4: 2018-10-15 11:33:26 ЛС | профиль | цитата
Подскажите пожалуйста, что я делаю не так? Сервис вроде запускается, но уведомления все равно не приходят
Add(MainActivity,2953706,21,105)
{
link(onCreate,8179321:doStart,[(89,111)(89,132)])
}
Add(Service,8179321,126,126)
{
}
BEGIN_SDK
Add(ServiceEditMultiEx,12515770,21,21)
{
WorkCount=#24:doStart=Запускает сервис|49:doSendData=Пересылает данные в сервис ARG(Object)|12:doDisconnect|
EventCount=#97:onData=Событие происходит при пересылке данных из сервиса и выдаёт эти данные в поток ARG(Object)|15:onConnectResult|7:onStart|
VarCount=#11:InputStream|12:OutputStream|
DataCount=#2:IP|
Width=689
Height=519
link(doStart,15008546:doEvent1,[(63,27)(63,167)])
link(doDisconnect,1619511:doDisconnect,[(207,41)(207,223)])
}
Add(ChildService,9355908,322,35)
{
ForegroundNotification="Mess"
Point(doStartForeground)
link(onCreate,9355908:doStartForeground,[(366,41)(366,48)(310,48)(310,55)])
}
Add(Vibrator,984038,343,315)
{
Duration=500
}
Add(StatusBarNotification,637062,343,273)
{
TickerText="New object"
Message="New object"
Name="Mess"
}
Add(Hub,14089387,315,287)
{
link(onEvent1,637062:doShow,[(336,293)(336,279)])
link(onEvent2,984038:doVibrate,[(336,300)(336,321)])
}
Add(Hub,15008546,105,161)
{
InCount=2
OutCount=1
link(onEvent1,1619511:doConnect,[(255,167)(255,216)])
}
Add(TCPClient,1619511,252,210)
{
IP="192.168.0.33"
Port=5501
link(onConnectResult,10078857:doCallEvent,[])
link(onError,15008546:doEvent2,[(296,223)(296,199)(93,199)(93,174)])
link(IP,12515770:IP,[(258,186)(27,186)])
}
Add(DoData,16494527,210,294)
{
Data=String(1)
link(onEventData,3868721:doListenerState,[])
}
Add(UIThread,10078857,301,210)
{
link(onEvent,16494527:doData,[(345,216)(345,258)(198,258)(198,300)])
}
Add(SimpleStreamRW,3868721,252,287)
{
ListenerState=0
BufferSize=200
Point(WritingData)
Point(doListenerState)
link(onRead,14089387:doEvent1,[])
link(InputStream,1619511:InputStream,[])
link(OutputStream,1619511:OutputStream,[])
}
END_SDK


Редактировалось 1 раз(а), последний 2018-10-15 11:38:12
карма: 0

0
Ответов: 253
Рейтинг: 0
#5: 2018-10-15 16:40:15 ЛС | профиль | цитата

карма: 0

0
Ответов: 253
Рейтинг: 0
#6: 2018-10-16 15:03:55 ЛС | профиль | цитата
Спасибо, разобрался. Теперь все работает. Только не понимаю как активировать приложение(0ткрыть) При нажатие на оповещение в статус баре.
карма: 0

0
Ответов: 4630
Рейтинг: 749
#7: 2018-10-16 15:06:44 ЛС | профиль | цитата
Вероятно, посылкой Intent (компоненты Intent, IntentReadWrite). Смотри пример "Intents".
карма: 26

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)