Android前台服务没有';过了一段时间,你就不会有反应了

Android前台服务没有';过了一段时间,你就不会有反应了,android,service,Android,Service,在我的应用程序中,我需要运行一个服务。在此假设下,我将服务设置为前台服务。我的问题是,例如,在24小时或更长时间的服务停用后,服务没有反应。我可以在运行服务中看到我的服务,但服务的广播接收器不工作,定时任务不调用它们自己,等等 如果有任何关于这种行为原因的想法,我将不胜感激。 谢谢。安装一个报警器,它会在一段时间后(比如每2小时)醒来,查看您的服务是否正在运行,如果没有,它会启动服务 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cale

在我的应用程序中,我需要运行一个服务。在此假设下,我将服务设置为前台服务。我的问题是,例如,在24小时或更长时间的服务停用后,服务没有反应。我可以在运行服务中看到我的服务,但服务的广播接收器不工作,定时任务不调用它们自己,等等

如果有任何关于这种行为原因的想法,我将不胜感激。
谢谢。

安装一个报警器,它会在一段时间后(比如每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;
    }

经过一些调查,我得出的结论是,这可能是服务的规模。服务增长到16 Mb,然后服务停止反应。

服务仍在运行,我没有从ActivityManager中发现任何东西ServiceRunning是一种方法,如果服务正在运行,它将返回true。您需要提供正确的包名来代替此[“com.signals.Service”]我知道,但是?isServiceIsRunning()==真。他没有反应。!isServiceIsRunning(context)如果以这种方式(!isServiceIsRunning(context))服务id未运行,则此方法将返回false,否则将粘贴代码