如何从服务中调用主要活动中的功能?

时间:2011-09-26 19:47:25

标签: android function service android-activity call

我使用startService()从我的主要活动启动服务。该服务检查localhost上的套接字。收到套接字时,它会从中读取数据。我想在收到包含特定数据的套接字时隐藏通知栏。我已经编写了一个函数hideNotificationBar(),它位于我的主要活动中。问题是我不知道如何在服务的主要活动中调用此函数。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:5)

从服务发送广播。注册您的活动以接收此广播并采取行动。

此方法解决了存储/获取对Activity的引用的问题,该引用可能在您的服务生命周期内变为非活动状态。

缺点是您只能通过广播Intent发送简单类型,Bundle或实现Parcelable的类。

答案 1 :(得分:0)

我建议您查看API Demos应用程序中的MessengerServiceMessengerServiceActivities 基本上,想法是在您的活动和服务中包含Handler类来处理两者之间的通信。在活动中使用ServiceConnection与服务建立连接。