IntentService的java.lang.InstantiationException错误
来源:互联网 发布:slack windows 编辑:程序博客网 时间:2024/06/07 19:16
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
======================================================
关于继承intentservice,构造函数需要注意一个地方,eclipse默认生成的构造函数是
public myintentservice(string name) {
super(name);
}
而官方文档的示例中是没有参数的构造方法,使用eclipse这个默认构造函数的话会报一个运行时错误: java.lang.instantiationexception,在google groups里找到了解决办法,继承intentservice的类必须有一个public的无参的构造函数,将上面eclipse自动生成的构造函数改为下面这样的就可以了:
public myintentservice() {
super("somename");
}
为什么要这样改,看intentservice构造函数的源码:
public intentservice(string name) {
super();
mname = name;
}
sdk文档里说构造函数里面的服务名字只在调试时有用,可以随便写一个名字。
另一个需要特别指出的时,在onhandleintent里不需要自己处理线程,或者新启线程,intentservice默认会为队列中的任务启动后台线程,源码中的实现是这样的:
private final class servicehandler extends handler {
public servicehandler(looper looper) {
super(looper);
}
@override
public void handlemessage(message msg) {
onhandleintent((intent)msg.obj);
stopself(msg.arg1);
}
}
@override
public void oncreate() {
super.oncreate();
handlerthread thread = new handlerthread("intentservice[" + mname + "]");
thread.start();
mservicelooper = thread.getlooper();
mservicehandler = new servicehandler(mservicelooper);
}
看源码可以得知onhanldeintent()是在新的后台线程handlerthread里执行的,所以不需要要我们自己新开线程。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- 【IntentService】IntentService的java.lang.InstantiationException错误
- IntentService的java.lang.InstantiationException错误
- java.lang.InstantiationException错误
- iBatis中java.lang.InstantiationException错误的原因
- java.lang.InstantiationException翻译
- java.lang.InstantiationException 类
- java.lang.InstantiationException:
- java.lang.InstantiationException
- java.lang.InstantiationException
- java.lang.InstantiationException
- java.lang.InstantiationException
- java.lang.InstantiationException:
- 使用 IntentService 报错: java.lang.InstantiationException: class has no zero argument constructor
- ibaits错误java.lang.InstantiationException: java.util.Map
- Axis2 异常 java.lang.InstantiationException
- 关于java.lang.InstantiationException异常
- Caused by: java.lang.InstantiationException
- 关于 java.lang.InstantiationException 异常
- 转自熔岩博客 Java线程:线程的同步与锁
- JAVA乱码
- 14条Java核心技术
- ACM比赛中JAVA的应用
- 学习java的30个目标
- IntentService的java.lang.InstantiationException错误
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- Javascript与框架prototype,JQyuery调研
- javascript:history.go()和History.back()的区别(转载)
- ASP.NET AJAX(开发代号Atlas)重要参考资源大收集
- WebLogic
- Delphi文本文件读写
- Delphi中的INI文件編程
- dota奶爸