我遇到绑定服务的问题: 我使用以下代码:
protected void onCreate(){
...
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mService != null)
Log.e(TAG, "is instantiated (onClick)!");
});
}
protected void onStart(){
super.onStart();
bindService(new Intent(this, HostService.class), connection, Context.BIND_AUTO_CREATE);
if(mService == null)
Log.e(TAG, "is null (onStart)!");
}
...
开始我的活动后“为null(onStart)!”在LogCat中打印。 当我点击按钮“实例化(onClick)!”打印出来。 为什么bindService()不直接实例化我的服务实例mService,如何解决引用它的问题?
thx&问候
答案 0 :(得分:0)
为什么bindService()不直接实例化我的服务实例mService
不应该这样。 bindService()
是异步的,就像Android中的许多操作一样。
如何解决这个问题?
将您的业务逻辑放在onServiceConnected()
的{{1}}中,而不是在ServiceConnection
来电后立即。