我正在尝试启动Service
我创建MyService
的从BroadcastReceiver
. MyBroadcastReceiver
是 a 的内部类Fragment
。所以我的代码如下所示:
public class MyFragment extends Fragment {
/*
* Lots of code taken out
*/
private class ServiceListener extends BroadcastReceiver{
private Context parentContext = null;
public ServiceListener(Context parentContext){
this.parentContext = parentContext;
IntentFilter intentFilter = new IntentFilter("com.example.serverListener");
this.parentContext.registerReceiver(this, intentFilter);
}
@Override
public void onReceive(Context arg0, Intent arg1) {
Intent i = new Intent(arg0, MyService.class);
MyFragment.this.getActivity().startService(i);
MyFragment.this.getActivity().bindService(i, mConnection, Service.BIND_AUTO_CREATE);
}
}
/** Defines callbacks for service binding, passed to bindService() */
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className,
IBinder service) {
//code taken out
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
//more code taken out
}
};
}
我可以看到调用进入了onReceive()
in 的方法ServiceListener
,但是在它完成了开始和绑定的行之后service
,我从来没有在onBind()
里面的方法MyService
或我的onServiceConnected()
任何一个上打断点。
有谁知道可能出了什么问题?
附言。作为旁注, theBroadcast
来自FragmentActivity
包含 a 的TabHost
。是TabHost
什么创造了Fragment
s,即。我的片段。如果有一种更简单的方法可以调用Fragment
from anFragmentActivity
来触发Service
to start 和 bind,我会全力以赴!
谢谢!
编辑:
我没有service
定义我的Manifest.xml
...现在一切正常! </silly>