Wit*_*tek 229
如果您只想阻止特定的睡眠模式View,只需调用setKeepScreenOn(true)它View或将keepScreenOn属性设置为true.这将阻止屏幕在屏幕上时关闭View.没有特别许可.
eld*_*his 131
一种选择是使用唤醒锁.来自文档的示例:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
// screen and CPU will stay awake during this section
wl.release();
Run Code Online (Sandbox Code Playgroud)
此页面上还有一个表格,描述了不同类型的唤醒锁.
请注意,使用唤醒锁时需要注意一些事项.确保release()在完成锁定(或不在前台)时始终锁定.否则,您的应用可能会导致严重的电池消耗和CPU使用率.
该文档还包含一个有用的页面,描述了保持设备唤醒的不同方法,以及何时可以选择使用一个.如果"防止设备进入休眠状态"仅指屏幕(并且不保持CPU处于活动状态),则唤醒锁定可能超出您的需要.
您还需要确保在清单中设置了WAKE_LOCK权限才能使用此方法.
dog*_*nic 113
我找到了另一种有效的解决方案:在onCreate事件下将以下行添加到您的应用中.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
我的示例Cordova项目如下所示:
package com.apps.demo;
import android.os.Bundle;
import android.view.WindowManager;
import org.apache.cordova.*;
public class ScanManActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
super.loadUrl("http://stackoverflow.com");
}
}
Run Code Online (Sandbox Code Playgroud)
之后,我的应用程序在打开时不会进入睡眠状态.感谢anwer转到xSus.
CoD*_*oDe 23
android:keepScreenOn="true" 从布局XML可能是更好的选择.
更多信息:https://developer.android.com/training/scheduling/wakelock.html
arj*_*jun 12
在Activity的窗口上设置标志如下
@Override public void onResume() {
super.onResume();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override public void onPause() {
super.onPause();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Run Code Online (Sandbox Code Playgroud)
从root shell(例如adb shell),你可以锁定:
echo mylockname >/sys/power/wake_lock
Run Code Online (Sandbox Code Playgroud)
之后设备将保持清醒状态,直到您执行以下操作:
echo mylockname >/sys/power/wake_unlock
Run Code Online (Sandbox Code Playgroud)
使用'mylockname'相同的字符串.
请注意,这不会阻止屏幕变黑,但会阻止CPU休眠.
请注意,/ sys/power/wake_lock是用户无线电(1001)和组系统(1000)的读写,当然还有root用户.
参考资料如下:http://lwn.net/Articles/479841/
| 归档时间: |
|
| 查看次数: |
156948 次 |
| 最近记录: |