gpt4 book ai didi

android - 在 bindService 方法之后从未调用过 onServiceConnected

转载 作者:IT老高 更新时间:2023-10-28 21:44:27 28 4
gpt4 key购买 nike

我有一个特殊的情况:由广播接收器启动的服务启动一个 Activity 。我想让这个 Activity 能够与服务进行通信。我选择使用 AIDL 来实现它。除了在 Activity 的 onCreate() 中调用的 bindService() 方法外,一切似乎都很好。实际上,bindService() 会抛出空指针异常,因为 onServiceConnected() 永远不会被调用,而服务的 onBind() 方法会被调用。无论如何 bindService() 返回真。该服务显然是 Activity 的,因为它启动了 Activity 。我知道从服务中调用 Activity 可能听起来很奇怪,但不幸的是,这是在服务中进行语音识别的唯一方法。

提前致谢

最佳答案

我刚刚遇到过这个问题的另一个版本,与 onServiceConnected(...) 的症状相同没有被调用。在我的情况下,原因不同。

您必须确保在应用程序标记内的 AndroidManifest.xml 中有一个服务声明 - 这对我来说是问题的根源。

<application android:name=".YourAppTitle" android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main" android:label="@string/app_name">
</activity>
<service android:name="YourService" />
</application>

如果您在 Eclipse 中使用单独的 Android 库,则会有一个额外的复杂情况——添加此服务标记似乎只能在引用的服务与 list 位于同一包中时解决问题;即,如果您的应用位于 a.b.c 包中,并且这是 AndroidManifest.xml 所在的位置,则“YourService”也必须位于 a.b.c 包中。 (如有必要,从另一个库手动复制)或 <service..>标签可能/将被忽略和onServiceConnected(...)仍然不会被调用。

即使我在代码中为服务使用了合适的导入语句,我的项目也是如此。 Eclipse 没有显示错误,因此导入正确地识别了 Eclipse 工作区中另一个库中的类。

HTH

关于android - 在 bindService 方法之后从未调用过 onServiceConnected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2486692/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com