服务被杀,不是因为记忆原因

时间:2013-12-12 09:53:37

标签: android android-service

当我的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会杀死我的服务?

2 个答案:

答案 0 :(得分:0)

你能显示你的日志吗?可能是ANR。

答案 1 :(得分:0)

run()上调用Thread不会在单独的线程上运行它,但在调用线程中运行它。要在单独的线程中运行,请致电start()

如果您长时间阻止主线程,

Android将终止您的服务。