/ / एंड्रॉइड सेवा और श्रोता का उपयोग करके गतिविधि के बीच संचार - एंड्रॉइड, सेवा, एंड्रॉइड-गतिविधि, संचार

श्रोता - एंड्रॉइड, सेवा, एंड्रॉइड-गतिविधि, संचार का उपयोग कर एंड्रॉइड सेवा और गतिविधि के बीच संचार

अधिकांश उदाहरण जो मैं बीच संचार के लिए देखता हूंगतिविधि और सेवा ब्रॉडकास्ट रिसीवर का उपयोग कर रहे हैं। मेरा सवाल यह है कि क्या मैं प्रसारण रिसीवर को सिर्फ एक सामान्य श्रोता से बदल सकता हूँ? फिर मुझे अपनी वेब सेवा प्रतिक्रिया को एक इंटेंट/बंडल क्लास में मार्शल करने के बारे में चिंता करने की ज़रूरत नहीं है। क्या इस दृष्टिकोण में कुछ गड़बड़ है? ब्रॉडकास्ट रिसीवर का उपयोग करने से कम फायदेमंद कुछ भी? AddListener को गतिविधि की onCreate विधि और RemoveListener पर कॉल किया जाएगा गतिविधि की ऑनडेस्ट्रॉय विधि में बुलाया जाएगा।

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);
}
}
}

उत्तर:

उत्तर № 1 के लिए 4

यदि यह एक स्थानीय सेवा है, हाँ, आप ऐसा कर सकते हैं