问题描述
我正在测试我的应用程序前台服务,当它收到“服务器/网站”的响应(处理程序+ 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" />