我的应用在后台消耗过多电池

问题描述

在我的设置中,我看到我的应用在后台的电池设置中被标记为“频繁故障”。这是一个测验应用程序。 我的问题是什么让我的应用在后台运行?

我不使用定位服务。 我使用 Glide、Shared Preferences 等工具,但我不知道当我的应用程序关闭后台运行的是什么工具...

我的手机使用的是 API 29。

编辑:我在活动中使用了 Handler.postDelayed() 可能它会在后台继续吗?

解决方法

我在活动中使用 Handler.postdelayed() 可能它在后台继续吗?

是的,如果有一个 runnable 计划在一段时间后运行,它肯定会运行,即使您的应用在后台(但没有死)。

因此,为了节省资源,请在 Activity 的 onPause() 方法内调用 nameOfTheHandler.removeCallbacks(nameOfTheRunnable)

@Override
protected void onPause() {
    super.onPause();
    nameOfTheHandler.removeCallbacks(nameOfTheRunnable)
}

欲了解更多信息,请查看 this 文档。