gpt4 book ai didi

java - android BindService() 空指针异常

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:03 24 4
gpt4 key购买 nike

以下代码不断抛出空指针异常...

public class MainActivity extends Activity implements OnClickListener{
Button but;
Button but2;
LocalBinder binder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but = (Button) findViewById(R.id.button1);
but.setOnClickListener(this);
but = (Button) findViewById(R.id.button2);
}

ServiceConnection connection = new ServiceConnection(){

@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
Log.d("D1", "connecting");
binder = (LocalBinder) arg1;

}

@Override
public void onServiceDisconnected(ComponentName arg0) {
Log.d("D1", "disconnecting");

}

};

public static class ServiceTest extends Service{

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return new LocalBinder();
}

public class LocalBinder extends Binder{
public void toast(){
Toast.makeText(getApplicationContext(), "hope this works", Toast.LENGTH_LONG).show();
}
}
}

@Override
public void onClick(View arg0) {
Intent i = new Intent(getApplicationContext(), ServiceTest.LocalBinder.class);
bindService(i, connection, Context.BIND_AUTO_CREATE);
Toast.makeText(getApplicationContext(), "bind completed", Toast.LENGTH_LONG).show();
}

public void binderMethod(View v){
binder.toast();
}
}

我猜测原因是onServiceConnected没有执行,导致binder保持为null。 (but按钮将服务绑定(bind)到activity,同时but2执行binder.toast();——按下but2时抛出异常)

基本上问题是:为什么 onServiceConnected 不执行?

最佳答案

我认为,该 Intent 应该导致服务,而不是服务中的绑定(bind)器:Intent i = new Intent(getApplicationContext(), ServiceTest.class);

关于java - android BindService() 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com