我有一个活动类,在onResume
部分我已经使用了下一个代码 -
@Override
protected void onResume() {
super.onResume();
bindService(new Intent(MainActivity.this, IMService.class), mConnection , Context.BIND_AUTO_CREATE);
}
在onPause
我使用了下一个代码 -
@Override
protected void onPause()
{
unbindService(mConnection);
super.onPause();
}
您可以理解我对服务的绑定和解除绑定。
现在的问题是我想使用片段而不是Activity。
为了做到这一点,我已将onPuse代码更改为 -
@Override
protected void onPause()
{
getActivity().unbindService(mConnection);
super.onPause();
}
看起来很好。
但我遇到的问题是onResume
的绑定部分,我尝试了下一个代码 -
@Override
protected void onResume() {
super.onResume();
bindService(new Intent(getActivity(), IMService.class), mConnection , Context.BIND_AUTO_CREATE);
}
但Eclipse给我一个错误说 -
The method bindService(Intent, ServiceConnection, int) is undefined for the type MainFragment
服务在清单中显示如下 -
<service android:name="com.example.test.services.IMService" >
</service>
那么为什么我不能将服务绑定到片段中?也许我需要在getActivity代码中添加一些东西?
提供任何帮助
感谢@Raghunandan的帮助 - 这是解决方案 -
getActivity().bindService(new Intent(getActivity(), IMService.class), mConnection , Context.BIND_AUTO_CREATE);
答案 0 :(得分:12)
答案 1 :(得分:3)
开始:
Intent intent = new Intent(getActivity(), OdometrService.class);
getActivity().bindService(intent, connection, Context.BIND_AUTO_CREATE);
停止:
getActivity().unbindService(connection);