1
我为我的应用程序提供前台服务,该服务必须运行整个时间并且永不停止。虽然我测试了几次,但在3-4天后,Android决定停止它,并且再也不会重新启动它,并且在我的活动中,如果服务正在运行,并且它没有启动它。 即使服务没有启动,我也无法调试它,因为这不是偶然发生的。 这是我的支票,有没有错吗?由Android停止的前台服务以后不会重新启动
if (!isMyServiceRunning(MyService.class)) {
startService(new Intent(this, MyService.class));
}
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
我所说的活动)中的onResume此检查(和活动开始时,我不能只是运行它每次,因为我有一个不断运行的线程的服务,这将让不止一个例如,如果多次启动...
所以这里就是我想: 要么有更可靠的方式来检查的服务,如果其运行 或 只需启动该服务每次活动开始时间,防止出现问题,并且它内部的线程必须总是只有一个实例(我已经声明为静态)
你需要知道什么? – 2014-12-13 09:30:21
你可以粘贴启动服务的代码吗? – 2014-12-13 09:30:57
你的意思是onStartCommand方法吗? – 2014-12-13 09:38:10