Android会降低睡眠期间的前台服务响应速度

问题描述

我正在测试我的应用程序前台服务,当它收到“服务器/网站”的响应(处理程序+ Runnable每7秒检查一次服务器上的更改)时,我应该通知我,并且我发现异常的情况是,手机处于睡眠模式: 起初,在第一分钟,一切似乎都工作正常,但后来,服务似乎延迟了。服务器更改一分钟后,它给了我一个响应,然后是2,然后是5,甚至是8分钟。然后再1分钟...等等

这仅在手机未与笔记本电脑连接时发生。我曾尝试使用android studio对其进行调试,但是当它(通过数据线)连接到笔记本电脑时,一切正常。

这就像停止向应用程序提供互联网访问权限一样。之所以这样说,是因为当我从WhatsApp收到通知时,也会收到我的应用程序通知

Android可以减慢/限制应用程序的互联网访问吗?还是我没有看到另一个问题?

我使用两部手机:华硕Zenpone和三星galaxy a5。三星似乎工作得更好一些,但是...

解决方法

我设法通过android开发者文档中的解决方案解决了这个问题:

https://developer.android.com/training/scheduling/wakelock

在服务类别中:

    PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyApp::MyWakelockTag");
wakeLock.acquire();

在清单文件中:

<uses-permission android:name="android.permission.WAKE_LOCK" />

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...