Android:保持屏幕开启[重复]

Posted

技术标签:

【中文标题】Android:保持屏幕开启[重复]【英文标题】:Android: Keep screen on [duplicate] 【发布时间】:2014-01-26 21:06:54 【问题描述】:

我尝试将屏幕设置为始终打开,但我不知道如何在片段中执行此操作。我试图访问 ViewPager,但它返回一个空值。我希望整个应用程序的屏幕都打开,但它应该能够由用户在应用程序的设置中进行更改。

这是我的片段中的代码:

private void setIsAlwaysOn(boolean b)

    ViewPager pager = (ViewPager)getView().findViewById(R.id.pager);
    pager.setKeepScreenOn(b);

    sharePropertiesEditor.putBoolean(sp_alwaysOn, b);
    sharePropertiesEditor.commit();

我在上面可见代码的第 4 行得到一个空指针异常。

【问题讨论】:

我已经尝试过了,但我无法访问 getWindow 或 currentWindow 在片段中 getActivity().getWindow() 发布完整的堆栈跟踪,以便我们可以看到 NPE 的上下文。 【参考方案1】:

是的。你不能用这个吗?

getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

对于 Kotlin,使用:

activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

【讨论】:

前面有一个 getActivity(),这工作得很好:)

以上是关于Android:保持屏幕开启[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android 如何保持屏幕常亮

在外部应用程序中保持屏幕开启

在Android中的锁定屏幕上显示自定义信息[重复]

防止应用程序/屏幕超时Android

Android保持屏幕常亮

Android在方向上保存视图位置已更改[重复]