gpt4 book ai didi

android - Android服务和 Activity 之间使用监听器的通信

转载 作者:行者123 更新时间:2023-11-29 16:05:45 25 4
gpt4 key购买 nike

我看到的大多数 Activity 和服务之间的通信示例都使用 BroadcastReceiver。我的问题是我可以用普通的听众替换广播接收器吗?然后我不必担心将我的 Web 服务响应编码到 Intent/Bundle 类中。这种方法有什么问题吗?还有什么比使用 BroadcastReceiver 更不利的吗? AddListener 将在 Activity 的 onCreate 方法中调用,RemoveListener 将在 Activity 的 onDestroy 方法中调用。

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

最佳答案

如果是本地服务,是的,你可以这样做

关于android - Android服务和 Activity 之间使用监听器的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com