首页 > 解决方案 > 如何正确实现部分唤醒锁?

问题描述

我找到了实现它的方法如下......

代码:

public class main extends AppCompatActivity implements View.OnClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lvl_1);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AppName: tag");
    wl.acquire();
    wl.release();
}

然后我还在清单中添加了唤醒锁定的权限代码。但是,它无法正常工作,因为屏幕熄灭,当我再次重新打开屏幕时,我的应用程序关闭并发生了一些随机错误。(该错误与唤醒锁定无关,而是因为我存在部分唤醒锁定代码已添加)。伙计们,请帮帮我。我已经被这个问题困住了将近一个星期。提前谢谢各位。

标签: javaandroidandroid-wake-lock

解决方案


我强烈建议您阅读有关打盹模式的 Android 文档 保持设备唤醒

如果您想保持屏幕开启,请避免使用唤醒锁。

如果您想在您的活动中保持屏幕打开,请window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)在您的 onCreate 中 使用此标签,
或者
您可以通过 XML 标签实现相同的行为。 机器人:keepScreenOn="真"

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

推荐阅读