我在使用后台服务方面有问题。
我使用的服务来自两个活动。
第一个活动使用startService(intent)启动Service,并使用bindService(intent, mConnection, Context.BIND_AUTO_CREATE);绑定到它
这个功能非常好,我可以在onServiceConnected()中发送一个onServiceConnected()。
第二个活动只绑定到Service (因为它已经启动),再次使用bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
现在我的问题是:
在第二个活动中,我有一个Button,它应该在我按下服务时使用它。
但是,在这个活动中从未调用过onServiceConnected(),因此我无法获得绑定器来创建一个Messenger来将一个Message发送到服务器。
有人知道onServiceConnected()何时被准确调用,或者它可能在等待什么吗?
或者其他的东西来解决这个问题?
编辑: bindService返回false,会导致什么原因?
提前感谢
发布于 2011-10-25 07:16:56
经过进一步的研究,我发现这在Android系统中是一个众所周知的问题。
我所说的第二个活动是一个活动,它被用作TabActivity中的内容。
解决这个问题的方法是在应用程序上下文中调用bindService(...),而不是使用getApplicationContext().bindService(...)调用活动上下文。
发布于 2013-10-28 13:38:30
你需要加上:
<service android:name="package.path.to.your.service.class" android:enabled="true"></service>
在Android清单文件中。
发布于 2013-06-03 19:55:25
在清单中添加绑定。
<service
android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>MyAccessibilityService您的服务名称。
https://stackoverflow.com/questions/7875131
复制相似问题