当我的Activity退出时,我在闹钟中注册了一个待处理的意图,该意图将在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的线程完成睡眠时,android杀死了NotificationService;然后重新启动它并再次杀死它。最后,NotificationService再也没有起床。我试图将“间隔”设置为15,然后一切正常。所以我认为这不是因为内存会导致机器人杀死它。
有人可以提供帮助吗?为什么Android会杀死我的服务?
答案 0 :(得分:0)
你能显示你的日志吗?可能是ANR。
答案 1 :(得分:0)
在run()
上调用Thread
不会在单独的线程上运行它,但在调用线程中运行它。要在单独的线程中运行,请致电start()
。
Android将终止您的服务。