Android完全唤醒锁定已被弃用,但部分唤醒锁定未被弃用

Android完全唤醒锁定已被弃用,但部分唤醒锁定未被弃用,android,wakelock,android-wake-lock,Android,Wakelock,Android Wake Lock,这里我提到了唤醒屏幕的代码。我希望代码是监听,应用程序是关闭的,cpu是清除的,用户可以点击电源按钮,当我的屏幕解锁时,应用程序是像whatsapp一样同步的 PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "whatever"); super.onCreate(

这里我提到了唤醒屏幕的代码。我希望代码是监听,应用程序是关闭的,cpu是清除的,用户可以点击电源按钮,当我的屏幕解锁时,应用程序是像whatsapp一样同步的

    PowerManager pm =  (PowerManager)getSystemService(Context.POWER_SERVICE); 
    wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "whatever");
    super.onCreate(savedInstanceState);
    wl.acquire();

完全唤醒锁定已被弃用,最好使用部分唤醒锁定。这是做这件事的标准方法

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
Wakelock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "MyWakelockTag");
wakeLock.acquire();
欲了解更多实施方式,请访问官方链接


< P>你可以考虑另一种选择,使用JobScheduler来运行后台任务,而应用程序仍然睡眠更长时间,从而保存电池。
JobScheduler提供了许多方法来定义作业执行条件,因此我们可以利用这些方法,但它可以用于使用Android 5.0(API级别21)及以上的应用程序

事实上,我想我的应用程序是在后台工作,也像whatsapp,任何其他方法都是可用的…你可以很容易地做到这一点。只需实现一项服务,在用户关闭应用程序时不要销毁。同时,使用WAKE_锁,即使在后台运行,它也能保持服务的活动状态。进程终止时,它是工作的。它在Android 8上不工作。还添加了
wakeLock.release()
onDestroy()
没有帮助。我们正在编码代码,而不是文献。您可以发布代码吗?请尝试此操作以安全地执行bg任务,而不会损失设备的电池寿命和性能。谢谢您的评论。没有任何例子都很难。我花了两天的时间来解释JobScheduler,但它在Oreo+api上并没有生效。当然,很高兴分享。。。希望有帮助