Служба обращается к активности в android

У меня работает back ground service. У меня есть клиент, который взаимодействует с сервисом.

Когда клиент запрашивает некоторую операцию, служба выполняет ее, и она должна отправить результат обратно на активность (клиент).

Я знаю, как вызывать методы обслуживания в действии и использовать обратные вызовы, которые мы можем достичь, что я хочу делать. Но я не могу понять механизм обратного вызова и пример кода, представленный в демонстрационных версиях Api (remoteservice).

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

Благодарю заранее!

Если это помогает, вот два примера проектов, показывающих удаленный клиент / услугу с обратными вызовами.

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

Вот поток
Создайте свое намерение позвонить службе. Вы можете BindService() startService() или BindService() с помощью BIND_AUTO_CREATE

Как только услуга будет связана, она создаст туннель, чтобы поговорить с ним о клиенте, который является интерфейсом IBinder . Это используется вашей реализацией интерфейса AIDL и возвращает IBinder в

 private final MyServiceInterface.Stub mBinder = new MyServiceInterface.Stub() { public int getNumber() { return new Random().nextInt(100); } }; public IBinder onBind(Intent intent) { // TODO Auto-generated method stub Toast.makeText(this, "Service OnBind()", Toast.LENGTH_LONG).show(); return mBinder; } 

После того, как он вернет mBinder , ServiceConnection который вы создали на клиенте, будет вызван назад, и вы получите интерфейс службы, используя этот

  mConnection = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub } public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub mService = MyServiceInterface.Stub.asInterface(service); }; 

Теперь у вас есть интерфейс mService для вызова и возврата любого сервиса из этого

Это может помочь: (с помощью LocalBroadcastManager ) http://www.codeproject.com/Articles/662519/Asynchronous-callback-from-Service-using-messaging

Intereting Posts