我正在尝试提供一项服务以在后台无限期地继续工作,如果它结束,则自行重新启动。运行良好一段时间,但 30 或 40 分钟后停止发送信号,但服务仍在列表中继续。并且永远不会进入 OnDestroy()。
我不知道android是真的停止还是只是暂停。我想不要停下来,因为我等了很长时间,再也没有表现出生命的迹象。这是我的代码的一部分。测试原因,干脆做一个无限循环,每分钟在通知栏显示一条消息。
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("Timer", "Service starting" );
new Thread(new Runnable() {
public void run() {
Runit();
}
}).start();
return START_STICKY;
}
private void Runit(){
Log.i(getClass().getSimpleName(), "Timer started.");
try {
while (true){
Thread.sleep(60000);
iTimer += 1;
new Thread(new Runnable() {
public void run() {
SendNotification("Timer "+String.valueOf(iTimer));
}
}).start();
}
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
SendNotification(e1.getMessage());
}
SendNotification("Service Stop");
}
我使用 startForeground() 进行了另一次测试,因此持续了两天的工作直到我停止它。但我不想显示在通知栏中。
它停止工作的原因是什么?android暂停还是停止?