我正在使用方法 setKeepScreenOn(true) 并且无法弄清楚如何相对于当前的 Activity (它有一个内容视图集)来调用它。我已经能够通过在视图中始终存在的一个按钮上调用它来使其工作,但这感觉不对 - 我确信必须有办法解决这个问题。我尝试像这样引用当前焦点:
getCurrentFocus().setKeepScreenOn(true);
但这引发了 NullPointerException。也许没有当前的焦点。那么,谁能告诉我如何引用我在里面工作的视图类?谢谢 :)
我正在使用方法 setKeepScreenOn(true) 并且无法弄清楚如何相对于当前的 Activity (它有一个内容视图集)来调用它。我已经能够通过在视图中始终存在的一个按钮上调用它来使其工作,但这感觉不对 - 我确信必须有办法解决这个问题。我尝试像这样引用当前焦点:
getCurrentFocus().setKeepScreenOn(true);
但这引发了 NullPointerException。也许没有当前的焦点。那么,谁能告诉我如何引用我在里面工作的视图类?谢谢 :)
试试这个答案:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow是为活动定义的方法,不需要您先找到View。
正如霍克所说,但解释得不好。
您也可以FLAG_KEEP_SCREEN_ON在您的 XML 布局文件中使用。
注意android:keepScreenOn="true"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true"
android:orientation="vertical" >
<!-- whatever is in your layout -->
</LinearLayout>
我现在已经将所有保持屏幕打开的选项写进了一篇博文:http:
//blog.blundellapps.com/tut-keep-screen-onawake-3-possible-ways/
android:keepScreenOn在 XML 中设置
如果您在类扩展视图上执行此操作。你可以简单:
this.setKeepScreenOn(true);
根据 Google Docs for android Developers 你有两种方法可以做到这一点:
第一种方式:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
第二种方法是在您的 xml 文件布局中添加此属性:
android:keepScreenOn="true"