我有一个正在运行的服务,并且有兴趣在安装,删除或更新软件包时收到通知。
我知道我应该使用广播接收器,但它在BroadcastReceiver明确说明......
您可能无法显示对话框或绑定到 来自内部的服务 广播接收器
所以我的问题是 - 我如何通知服务已经进行了这样的广播。
答案 0 :(得分:1)
扩展您引用的文字......
特别是,您可能无法在BroadcastReceiver中显示对话框或绑定到服务。对于前者,您应该使用NotificationManager API。 对于后者,您可以使用Context.startService()向服务发送命令。
来自Context.startService()文档...
如果此服务尚未运行,它将被实例化并启动(如果需要,为其创建一个进程); 如果它正在运行,那么它仍在运行。
换句话说,在已经运行的服务上调用startService()
的双赢局面不会产生负面影响。
答案 1 :(得分:1)
您无法绑定它,但没有禁止通过意图调用服务:
context.startService( <your intent with a name that match the filter of your service> );
然后照常把你的数据放在这个意图的附加内容中。
另一种选择可能是AIDL,但我还没有探索过。