我使用startService()从我的主要活动启动服务。该服务检查localhost上的套接字。收到套接字时,它会从中读取数据。我想在收到包含特定数据的套接字时隐藏通知栏。我已经编写了一个函数hideNotificationBar(),它位于我的主要活动中。问题是我不知道如何在服务的主要活动中调用此函数。 谢谢你的帮助!
答案 0 :(得分:5)
从服务发送广播。注册您的活动以接收此广播并采取行动。
此方法解决了存储/获取对Activity的引用的问题,该引用可能在您的服务生命周期内变为非活动状态。
缺点是您只能通过广播Intent发送简单类型,Bundle或实现Parcelable的类。
答案 1 :(得分:0)
我建议您查看API Demos应用程序中的MessengerService和MessengerServiceActivities
基本上,想法是在您的活动和服务中包含Handler
类来处理两者之间的通信。在活动中使用ServiceConnection
与服务建立连接。