我的理解是,如果我想让一个服务运行,即使没有任何东西限制它,那么它必须首先使用startservice(intent i)启动。
我的问题是,如果我想在启动服务后立即绑定到该服务,下面的代码是否保证该服务是用startService()创建的?
服务类中的静态方法:

public static void actStart(Context ctx) {
    Intent i = new Intent(ctx, BGService.class);
    i.setAction(ACTION_START);
    ctx.startService(i);
}

结合活性:
BGService.actionStart(getApplicationContext());
bindService(new Intent(this, BGService.class), serviceConnection, Context.BIND_AUTO_CREATE);

最佳答案

我不确定您在这里要做什么,但是“context.bind_auto_create”创建服务,然后绑定到服务,即使它还没有启动。
现在,如果希望在绑定后立即访问它,可以使用serviceConnection的onServiceConnectioned()方法:

 new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName className,
                IBinder service) {
            //put your code here...
        } ...

08-18 01:08