首页 > 解决方案 > 如何防止应用进入待机状态?

问题描述

我需要一些帮助才能让我的应用程序在空闲模式下保持活跃,但没有成功。我的应用程序需要每 10 秒从服务器检索一些信息,我无法使用 FCM,因为服务器已经创建并且无法更改。由于 10 秒的间隔,我也无法使用 AlarmManager 或 JobScheduler。我还做了一个测试应用程序,它每秒振动,每秒增加一个值并显示当前值,但仍然没有成功。到目前为止,我尝试过:

标签: android

解决方案


在不需要额外权限的情况下实现这一点的最简单方法是添加android:keepScreenOn="true"到需要保持唤醒的视图中。像这样

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
...
</RelativeLayout>

您还可以FLAG_KEEP_SCREEN_ON在活动中使用标志来保持屏幕开启。

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
}

有关更多信息,您可以在文档中了解有关保持设备唤醒的更多信息。


推荐阅读