当我开始每隔几秒钟向服务器发送一些数据的服务时,我获得了
唤醒锁定
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag");
wakeLock.acquire();
和wifiLock
WifiManager wMgr = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiLock = wMgr.createWifiLock(WifiManager.WIFI_MODE_FULL, "MyWifiLock");
wifiLock.acquire();
但如果设备未触摸一小时且处于睡眠模式,则wifi停止工作。这是正常行为,如果没有,我应该怎样做才能锁定设备,直到调用release()
方法?
答案 0 :(得分:3)
当设备闲置一段时间以优化电池性能时,Android会关闭设备,所以这是正常行为。
首先,强烈建议您不要试图阻止设备打瞌睡模式,以提高设备的电池性能。您可以在official documentation中了解有关打瞌睡的更多信息。
如果您出于某种原因严格要求保持服务的有效性,则可以尝试在应用中添加REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限。但请注意,根据官方文档here中的以下引文,您的应用可能会被Google Play商店拒绝(如果它应该在那里发布):
注意:除非应用程序的核心功能受到不利影响,否则Google Play政策会禁止应用程序直接豁免Android 6.0+(Doze和App Standby)中的电源管理功能。