我的理解是,如果我想让一个服务运行,即使没有任何东西限制它,那么它必须首先使用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...
} ...