我有一个前台服务,该服务需要向服务器发送实时ping,并跟踪用户gps以了解用户是否在特定的地理围栏范围内(还发送进出的数据包)。
我这样在onStartCommand上启动这些线程;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mHealthThread == null) { //Starts a thread with interval of 6 minutes.
mHealthThread = ThreadAppHealthChecker.getInstance();
mHealthThread.start();
}
startForegroundService();//a method to create notification and startForeground.
....
return START_STICKY;
}
在大多数情况下,它运行良好。我的用户没有关于该服务被终止的报告,但是我发现服务器日志出现了一些延迟。
活动ping(实际上只是服务器api)的间隔为6分钟,但我的用户的某些间隔不是这样。
ex)
12:00:00健康检查确定 12:06:00健康检查确定 12:30:00健康检查确定
发送api似乎有10到30分钟左右的延迟。线程实际上根本没有死,但是这些延迟对于我的服务至关重要。
任何帮助都将受到欢迎。谢谢。