当我的"活动"退出时,我在警报中注册了一个挂起的意图,它将在60秒内启动NotificationService。onCreate()的代码如下:
PlayLogSender.getInstance(this).startSend();
和startSend():
public void startSend(){
new Thread(){
@Override
public void run(){
log("[thread]started");
int interval=20;
try{
//wait for QTRadioService starting in case of this is a APP launch
Thread.sleep(interval*1000);
}catch(Exception e){}
log("sleep "+s+"s done");
while(some condition){
......
}
}
}.run()
}
当PlayLogSender的线程完成睡眠时,安卓杀死了NotificationService;然后重新启动并再次杀死它。最后NotificationService再也没有起床。我试着把"间隔"设置为15,然后一切都很好。所以我认为安卓杀死它并不是因为内存
有人能帮忙吗?为什么Android会扼杀我的服务?
在Thread
上调用run()
不会在单独的线程上运行,而是在调用线程中运行。要在单独的线程中运行,请调用start()
。
如果你屏蔽主线程的时间太长,Android会杀死你的服务。
你能显示你的日志吗?可能是ANR。