读书人

Unable to instantiate activity Comp

发布时间: 2012-09-10 22:20:12 作者: rapoo

Unable to instantiate activity ComponentInfo 初学Android,请问下面有甚么区别
两个可以说是一样的,但为什么第二个会报错
private OnClickListener listener2=new OnClickListener()
{
public void onClick(View v)
{
Intent intent=new Intent(MainActivity.this, ExampleService.class);//这样就对了
switch (v.getId())
{
case R.id.btnStartService:
startService(intent);
break;
case R.id.btnEndService:
stopService(intent);
break;
}

}
};


private OnClickListener listener = new OnClickListener() {
Intent intent = new Intent(MainActivity.this, ExampleService.class);//这样就错了
public void onClick(View v) {
switch(v.getId()) {
case R.id.btnStartService :
startService(intent);
break;
case R.id.btnEndService :
stopService(intent);
break;
}
}
};

[解决办法]
第二个Intent intent = new Intent(MainActivity.this, ExampleService.class);在创建OnClickListener的时候就执行实例化了。而作为一个类的成员变量,是在初始化这个类的时侯执行, 你的MainActivity都还在初始化中,现在要用它,自然会报错。
[解决办法]
第二个intent = new Intent(MainActivity.this, ExampleService.class)中MainActivity为null,你Log一下MainActivit.this是什么看看

读书人网 >Android

热点推荐