问题描述
我有一个特殊情况:由广播接收器启动的服务启动一个活动.我想让此活动能够与服务进行通信.我选择使用 AIDL 使其成为可能.除了在活动的 onCreate()
中调用的 bindService()
方法外,一切似乎都运行良好.事实上,bindService() 会抛出一个空指针异常,因为 onServiceConnected()
永远不会被调用,而服务的 onBind()
方法是.无论如何 bindService()
返回 true.该服务显然处于活动状态,因为它启动了活动.我知道从服务调用 Activity 听起来很奇怪,但不幸的是,这是在服务中进行语音识别的唯一方法.
I have a particular situation:a service started by a broadcast receiver starts an activity. I want to make it possible for this activity to communicate back to the service. I have chosen to use AIDL to make it possible. Everything seems works good except for bindService()
method called in onCreate()
of the activity. bindService(), in fact, throws a null pointer exception because onServiceConnected()
is never called while onBind()
method of the service is. Anyway bindService()
returns true.The service is obviously active because it starts the activity.I know that calling an activity from a service could sound strange, but unfortunately this is the only way to have speech recognition in a service.
提前致谢
推荐答案
我无法从你的描述中弥补确切的问题,所以我会在这里猜测!
I can't make up the exact problem out of your description, so I'm going to guess here!
bindService()
如何抛出 NullPointerException
?这可能(/应该)发生的唯一方法是当您不提供 Service
或 ServiceConnection
侦听器时.
How can bindService()
throw a NullPointerException
? The only way this could (/should) happen is when you don't supply a Service
or a ServiceConnection
listener.
bindService()
不能抛出 NullPointerException
因为 onServiceConnected()
没有被调用.对 onServiceConnected()
的调用是 bindService()
的产物.
bindService()
can't throw a NullPointerException
because onServiceConnected()
isn't called. The call to onServiceConnected()
is a product of bindService()
.
所以我猜您在 Service
实际绑定之前调用了 AIDL
方法?
So I guess you are calling a AIDL
method, before the Service
has actually bonded?
这篇关于在 bindService 方法之后从未调用 onServiceConnected的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!