/ / Comunicação entre o serviço e a atividade do Android usando o ouvinte - android, serviço, atividade do Android, comunicação

Comunicação entre serviço Android e atividade usando ouvinte - android, serviço, android-atividade, comunicação

A maioria dos exemplos que vejo de comunicação entreatividade e serviço estão usando um BroadcastReceiver. Minha pergunta é: posso substituir o receptor de transmissão apenas por um ouvinte normal? Então, não preciso me preocupar em empacotar minha resposta de serviço da web em uma classe Intent / Bundle. Há algo errado com essa abordagem? Algo menos vantajoso do que usar um BroadcastReceiver? AddListener seria chamado no método onCreate e no RemoveListener de Activity seria chamado no método onDestroy da Activity.

package com.example.test;

import java.util.ArrayList;
import java.util.List;

import android.app.IntentService;
import android.content.Intent;

public class AsyncService extends IntentService
{
static List<WebServiceListener> listeners = new ArrayList<WebServiceListener>();

public static void addListener(WebServiceListener listener)
{
listeners.add(listener);
}

public static void removeListener(WebServiceListener listener)
{
listeners.remove(listener);
}

public AsyncService(String name)
{
super(name);
}

@Override
protected void onHandleIntent(Intent intent)
{
try
{
Thread.sleep(5000); //simulate calling webservice
}
catch (Exception e)
{
//
}

WebServiceResponse response = new WebServiceResponse();
response.status = "SUCCESS";

for (WebServiceListener listener : listeners)
{
listener.onReceiveResult(response);
}
}
}

Respostas:

4 para resposta № 1

se for um serviço local, sim, você pode fazer isso