当前位置: 首页 > 面试题库 >

如何从服务回调到活动

蒯卓君
2023-03-14
问题内容

抱歉再次困扰您,但是我仍然找不到从活动到服务的回调方法…

找到了类似的问题- 如何在Android中定义回调?

// The callback interface
interface MyCallback {
    void callbackCall();
}

// The class that takes the callback
class Worker {
   MyCallback callback;

   void onEvent() {
      callback.callbackCall();
   }
}

// Option 1:

class Callback implements MyCallback {
   void callback() {
      // callback code goes here
   }
}

worker.callback = new Callback();

但还不确定如何将该示例集成到我的项目中。

任何建议或指向清晰教程的链接都很棒!


问题答案:

在示例中显示的这种回调(观察者模式)在服务和活动之间不起作用。当您从类A 创建了 类B 的实例 并希望将回调从B发送到A
时,请使用观察者模式。

关于服务和活动,情况完全不同。AFAICT,如果您Activity要从回调Service,最好的方法是使用ResultReceiver。关于以下内容有很多有趣的事情ResultReceiver

  • 它的构造函数接收一个Handler(必须在活动内部创建的),它将允许您从服务中更改UI。
  • 它实现了,Parcelable因此您可以ResultReceiverIntent启动服务所用的其他功能中添加参考。
  • 它的onReceive方法有一个结果码整数,它使您可以生成不同类型的回调(就像您的回调接口有很多方法一样)。此外,它还会收到一个Bundle,您可以用来放置所有结果数据。

另一方面,如果您要执行 回调
(不确定在这种情况下该术语是否正确),从您Activity到您Service,我想您将必须发送广播消息或类似的消息。



 类似资料:
  • 我有一个包含服务方法的报警服务服务类。这些方法在警报服务激活时被调用。我想做的是调用这些方法中的另一个类的意图,这些方法在服务类中被调用(当警报关闭时)。它所做的只是在调用意图时标记错误。这只发生在激活警报服务时调用的方法中(服务类中的方法)。这是因为类而不是吗?我不确定,有什么想法吗? (以下是我的服务类,当在方法中调用另一个活动的意图时,应用程序强制关闭。) LogCat上的这些错误之一是:

  • 我想做的是以下几点: 自活动: %1是登录到我的应用程序服务器的设备的Id。服务器然后以JSONArray格式检索与此ID关联的所有消息。我将这些JSONObjects转换为我构建的Message类,并将所有这些新对象保存为MessageCentre类实例中的静态数组。 所以我可以想出一些方法来处理这个问题: 1)一种使活动在没有ANR的情况下等待一段时间的方法 2)在某种回调方法中,以某种方式将

  • 在我的应用程序中,我试图将数据从我的发送到一个名为的服务。这是我的以下代码: MainActivity.class: BGS服务。课程: 但我没有在服务类中获取数据。以下是我得到的错误: 02-25 09:05:41.166:E/AndroidRuntime(2633): JAVAlang.RuntimeException:无法启动活动 组件信息{com.microapple.googleplac

  • 我是java新手,想知道如何在后台与服务一起运行活动。这样,当活动关闭并重新打开时,它将与服务一起继续。我不知道怎么解释。 假设3个服务,每个服务每小时执行一次。 服务1。。。1小时。。。服务2。。。1小时。。。服务3。已完成。 每次执行时,都会在活动中设置一个文本视图。但是当活动关闭时,不会创建文本视图。 我找到的唯一方法是使用变量,如下例所示 服务1: 服务2: 服务3: 创建活动: 我想知道

  • 问题内容: 早上, 我需要从Web服务返回一条消息。以下是我的代码示例,我正在返回一个字符串。 我目前收到以下回应… 我理想上想返回类似 我敢肯定,一旦我有了主意,就可以在需要时退还其他物品。这只是我需要解决的基础。 非常感谢所有帮助,在此先感谢:) 更新:刚发现这个… 我需要类似的东西吗 问题答案: 用: 返回的结果将类似于:

  • 问题内容: 我正在使用GWT作为Web开发框架。我需要从我的GWT客户端代码访问一些REST服务。我还需要解析JSON(或XML),这是这些服务的响应格式。哪个是解决此问题的最佳方法? 提前致谢。 问题答案: 您可以使用标准GWT调用REST服务(或者如果需要在另一个域上调用服务)。 随着JSON响应字符串,你可以调用获得,它可以是一个,等等,这是在所有可用的这个包。