如何正确实现部分唤醒锁?

2020年1月18日 7点热度 0条评论

我已经找到实现它的方法,如下所示...

码:

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();
}

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

解决方案如下:

我强烈建议您在打ze模式Keep the device awake上阅读此Android文档。

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

如果您想保持屏幕处于活动状态,请在onCreate中使用此标记window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
要么
您可以通过XML Tag实现相同的行为。
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>