【问题标题】:wakeLock and wifiLockwakeLock 和 wifiLock
【发布时间】:2016-12-19 00:33:07
【问题描述】:

当我启动服务时,每隔几秒我就会向服务器发送一些数据

唤醒锁

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() 方法之前我应该​​怎么做才能锁定设备?

【问题讨论】:

标签: java android


【解决方案1】:

当设备闲置一段时间以优化电池性能时,Android 会打瞌睡,所以是的,这是正常行为。

首先,强烈建议您不要尝试停止设备进入打盹模式,以提高设备的电池性能。你可以在official documentation阅读更多关于打瞌睡的信息。

如果您出于某种原因有严格的要求需要保持服务处于活动状态,您可以尝试在您的应用中添加REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限。但请注意,根据官方文档here 中的以下引用,您的应用可能会被 Google Play 商店拒绝(如果它应该在那里发布):

注意:除非应用的核心功能受到不利影响,否则 Google Play 政策禁止应用请求直接豁免 Android 6.0+(打盹和应用待机)中的电源管理功能。

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多