android bindService() NullPointerException

文章标签:
2014-11-1 13:32:13     人阅读    

android app开发中 下面的代码报错误 ,bindService() NullPointerException


 

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 没有执行,所以才会引起空指针

在but2执行调用 binder.toast() 的时候 会绑定 service 和 activity
当我点击btn2的时候才抛出这个异常.

为什么 onServiceConnected 没有执行?

处理方法

 intent 在调用service的时候并没有绑定service

Intent i = new Intent(getApplicationContext(), ServiceTest.class);

 


原文地址:http://www.itmmd.com/201411/95.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android 开发intentChooser 返回odd requestCode   上一篇
下一篇  android 发送一个http请求的问题
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!