1

我正在尝试启动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什么创造了Fragments,即。我的片段。如果有一种更简单的方法可以调用Fragmentfrom anFragmentActivity来触发Serviceto start 和 bind,我会全力以赴!

谢谢!

编辑:

我没有service定义我的Manifest.xml...现在一切正常! </silly>

4

0 回答 0