我正在尝试从Service
开始创建一个名为 MyService
的BroadcastReceiver
。我的BroadcastReceiver
是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()
中的ServiceListener
方法,但在完成越过行开始并绑定service
后,我从未在onBind()
上遇到断点{1}}内的{1}}方法,或MyService
内的方法。
有没有人知道可能出现什么问题?
聚苯乙烯。作为旁注,onServiceConnected()
来自Broadcast
,其中包含FragmentActivity
。 TabHost
是创建TabHost
s的原因,即。的 MyFragment 即可。如果有一种更简单的方法可以从Fragment
调用Fragment
来触发FragmentActivity
启动和绑定,我很满意!
谢谢!
修改
我的Service
中没有定义service
...现在一切正常! Manifest.xml