onCreate() (onCreate가 처음 호출 된 경우)에서 서비스를 시작하고 onStart()에서 bindService를 호출합니다. 이 서비스는 잘 작동하지만 bindService를 호출 한 후에 서비스의 로컬 인스턴스가 여전히 null입니다. 또한 getService()가 호출되지 않는 것 같습니다.안드로이드 문제 바인딩 서비스 시작
@Override
protected void onCreate(Bundle savedInstanceState) {
...
if(savedInstanceState == null){
final Intent i = new Intent(this, HostService.class);
startService(i);
}
}
protected void onStart(){
super.onStart();
bindService(new Intent(this, StartGameActivity.class), connection, Context.BIND_AUTO_CREATE);
}
private ServiceConnection connection = new ServiceConnection(){
@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
HostBinder binder = (HostBinder) arg1;
hostService = binder.getService();
isBound = true;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
isBound = false;
}
};
및 HostService에 : 여기 일부 코드 ONSTART()가 호출되고 이유라고 점점되지의 getService이 후
...
private HostBinder binder = new HostBinder();
...
public class HostBinder extends Binder{
HostService getService(){
Log.d(TAG, "getService");
return HostService.this;
}
}
@Override
public IBinder onBind(Intent arg0) {
return binder;
}
왜 아직도 널 hostService이다 ("의 getService은"아니다 LogCat에서 인쇄)?
들으 & 관련
아. 예, 나는 HostService.class를 의미했습니다. 몇 시간 동안 나를 괴롭혔다. : dxx 많이 :) – user2224350
나는 당신의 질문을 이해할 수 있을지 잘 모르겠지만, 만약 그렇다면, 문제는 서비스가 바인드 요청과 안드로이드에 응답하는 데 시간이 걸린다는 것이다. 시스템은 onCreate()가 기다리는 것을 원하지 않습니다. 따라서 요청은 비동기 적으로 처리되며 나중에 onServiceConnected()가 호출됩니다. –
@ user2224350 -이 질문에 답변으로 표시되도록 답변을 수락하십시오. –