Android设置已完成启动服务的侦听器
运行代码后,我无法启动服务 我的服务级别:Android设置已完成启动服务的侦听器,android,android-service,Android,Android Service,运行代码后,我无法启动服务 我的服务级别: @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); mApplication.setService(this); } 现在: 也许是这样的 protected ServiceConnection mServerConn = new Se
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
mApplication.setService(this);
}
现在:
也许是这样的
protected ServiceConnection mServerConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
Log.d(LOG_TAG, "onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(LOG_TAG, "onServiceDisconnected");
}
}
public void start() {
mContext.bindService(intent, mServerConn, Context.BIND_AUTO_CREATE);
mContext.startService(intent);
}
停止服务时也不要忘记取消绑定service()。然后使用
bindService
并等待ServiceConnection
这很奇怪,因为服务与您的服务运行在同一线程上activity@TimCastelijns是的,对我来说,这不是威德。即使服务
与您的活动
在同一线程上启动,但当您调用startService()
时,它不会立即启动。startService()
所做的一切都是在事件队列中放置一个事件,上面写着“请启动此服务”。只有在Android框架获得控制权后,它才会处理事件队列中的事件。在你运行的任何方法结束之前,Android框架都无法获得控制权。即使如此,在Android启动您的服务之前,事件队列中可能还有其他事件需要处理。
startService(intent);
mApplication.setIsServiceRunning(true);
// i need like listener
@Override
onServiceIsRunComplete() {
// here i'm sure that service is run
mApplication.getService().MyMethodAnyThing();
}
protected ServiceConnection mServerConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
Log.d(LOG_TAG, "onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(LOG_TAG, "onServiceDisconnected");
}
}
public void start() {
mContext.bindService(intent, mServerConn, Context.BIND_AUTO_CREATE);
mContext.startService(intent);
}