在我的应用程序中,我需要一个服务才能运行。在此假设下,我将服务设置为前台服务。我的问题是,例如24小时后或服务不再使用后,服务不会做出反应。我可以在运行服务中看到我的服务但服务的广播接收器不起作用,计划的计时器任务不会自己调用等等。
我会很感激任何想法可能是这种行为的原因。 谢谢。
答案 0 :(得分:0)
提供一个警报管理器,它会在每隔2小时后唤醒一次,看看你的服务是否正在运行,如果没有,它会启动服务
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), GeneralConstants.MAIN_SERVICE_CHECKING_TIME, pendingIntent);
if (!isServiceIsRunning(context)) {
context.startService(new Intent(context, MainServiceAlwaysActive.class));
}
public static boolean isServiceIsRunning(Context context) {
// Activity manager to refer the activity/process running in system
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// Loop to search
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
// Basic matching
if ("com.signals.service".equals(service.service.getClassName())) {
return true;
}
}
return false;
}
答案 1 :(得分:0)
经过一番调查后,我得出结论,这可能是服务的规模。服务增长到16 Mb然后服务停止反应。