2013-04-18 2 views
0

Я новичок в разработке Android, и я смущен насчет связи с сервисом. Мне нужно прослушать сокет, и когда пакет получен, обновите что-то в Activity. Я планирую слушать сокет с Сервисом и хочу сообщить Деянию, когда что-то получено.Как я могу обратиться к заданию с локальной службы на Android?

На данный момент я хочу, чтобы моя служба отправляла сообщение в мою активность каждые 5 секунд. Когда Activity получает сообщение, он печатает его в TextView.

Я просмотрел (Bound Services), но это, по-видимому, является только одним способом: методы вызова Activity в службе. Мне нужны трансляции? Разве они не могут обрабатывать общение?

Может ли кто-нибудь указать мне правильное направление? Благодарю.

+0

Попробуйте использовать «Обработчики», чтобы отправить сообщение обратно в вашу деятельность. –

+0

Это сработало: http://stackoverflow.com/questions/3998650/what-is-the-simplest-way-to-send-message-from-local-service-to-activity – tompreston

+0

Рад, что вы нашли свой ответ. Широковещательные передачи - это правильный подход, но вы должны использовать LocalBroadcastManager для поддержания связи в своем приложении: LocalBroadcastManager.getInstance (контекст) .sendBroadcast (намерение); – JustinMorris

ответ

0

Использовать обратный вызов.

ServiceInterface.aidl:

package com.test.service; 
import com.test.service.ServiceCallback; 
interface ServiceInterface { 

    /** 
    * Register callback for information from service. 
    */ 
    void registerCallback(ServiceCallback cb); 

    /** 
    * Remove a previously registered callback interface. 
    */ 
    void unregisterCallback(ServiceCallback cb); 
} 

ServiceCallback.aidl

package com.test.service; 

/** 
* Callback interface used by IRemoteService to send 
* synchronous notifications back to its clients. Note that this is a 
* one-way interface so the server does not block waiting for the client. 
*/ 
oneway interface ServiceCallback { 
    /** 
    * Your callback function 
    */ 
    void onCallback(int data); 
} 

Нашел ссылку на Malachi's Android сайт, объясняющий с большим количеством коды.