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



当我的"活动"退出时,我在警报中注册了一个挂起的意图,它将在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。

最新更新