我有一个特殊的情况:
由广播接收器启动的服务启动的活动。我想,这使本次活动的通信回服务。我选择使用AIDL,使之成为可能。一切似乎都工作良好,除了 bindService()
方法调用的onCreate()
的活动。 bindService(),其实,抛出一个空指针异常,因为 onServiceConnected()
永远不会被调用,而 onBind()
方法该服务是。反正 bindService()
返回true。
因为它启动活动的服务是明显活性。
我知道,从一个服务调用的活动可能听起来很奇怪,但不幸的是这是在服务的语音识别的唯一途径。
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异常
?这可能(/应)发生的唯一方法是,当你不提供服务
或 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()
.
所以我猜你调用一个 AIDL
法,服务之前
实际上保税?
So I guess you are calling a AIDL
method, before the Service
has actually bonded?