2011-03-14 44 views
2

我试图让从Service一个IBinder这样我就可以接收到来自系统的通知时与服务进行通信。从我的onReceive()方法,我打电话peekService(),但我得到空引用。广播接收器peekService()返回null

我已经阅读了一些答案https://groups.google.com/forum/#!topic/android-developers/yiq_XIzFoS4从Dianne和Mark他们推荐使用startService但我的服务有一个接口,我认为peekService应该工作,但它不。

我需要权限才能查看BroadcastReceiver的服务吗?我需要别的东西吗?我确定该服务正在运行,但我无法从中获得活页夹。

回答

2

如果通信是BroadcastReceiver - > Service ...,那么您将使用startService(),通过将数据添加到Intent的Bundle来传递数据。

我怀疑你的BroadcastReceiver需要询问服务(或其IBinder)一个问题。在这种情况下,您使用peekService。与peekService的摩擦是,如果服务未启动并被绑定,它将返回null。

答案是,以确保服务已启动,已经绑定,收到您的广播之前。你如何完成这将取决于你的具体应用。

如果你偷看服务为您的应用程序(相同的APK),那么你不需要特殊权限的一部分。