启动一个服务后,会实例化OPT类,并调用方法A,
在a方法中会执行一个等待:
synchronized (OPT.this) {
try {
wait(5分钟);
} catch (InterruptedException e) {
....
}
}在等待时,我强制关闭服务后,再启动,会在调用OPT的a方法时停住,因为OPT没有notify现在我把OPT写成了单例模式,启动服务时通过OPT.getInstance()获得实例
关闭服务时在onDestroy里做了notify:
if (opt == null) {
OPT.getInstance().notifyAll();
}else{
opt.notifyAll();
}但是这样没有效果,OPT类没有被notify掉,在下次启动服务时还是会停在调用a方式那儿,直到时间结束;请问我应该怎么做才能在服务关闭时notify掉OPT类?????
在a方法中会执行一个等待:
synchronized (OPT.this) {
try {
wait(5分钟);
} catch (InterruptedException e) {
....
}
}在等待时,我强制关闭服务后,再启动,会在调用OPT的a方法时停住,因为OPT没有notify现在我把OPT写成了单例模式,启动服务时通过OPT.getInstance()获得实例
关闭服务时在onDestroy里做了notify:
if (opt == null) {
OPT.getInstance().notifyAll();
}else{
opt.notifyAll();
}但是这样没有效果,OPT类没有被notify掉,在下次启动服务时还是会停在调用a方式那儿,直到时间结束;请问我应该怎么做才能在服务关闭时notify掉OPT类?????
请注意你在主线程notifyall, 子线程并没有关闭,而是被唤醒继续参与竞争,也就造成了服务关闭时线程还在运行的原因
当进程被杀死时,线程肯定都玩完了