我的应用程序中有三个活动.我希望屏幕在第二次活动时保持清醒状态.除非手动按下"锁定"键,否则屏幕不应在我的第二个活动中熄灭.我经历了许多链接,但他们似乎对我不清楚.
Ted*_*opp 147
正如Android教程中的" 保持屏幕开启"中所述,您可以通过几种方式实现此目的.您可以在活动窗口中设置FLAG_KEEP_SCREEN_ON:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
与之等效的XML是将属性添加android:keepScreenOn="true"到活动布局的根视图中.以编程方式设置标志的优点是您可以使用
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
当您的活动运行时,您不再需要强制屏幕保持打开状态.
控制屏幕(以及某些其他资源)的另一种方法是使用唤醒锁:
mWakeLock = ((PowerManager) getContext().getSystemService(Context.POWER_SERVICE))
    .newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
mWakeLock.acquire();
// screen stays on in this section
mWakeLock.release();
清单必须包含此权限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
但是,正如本教程中所讨论的,唤醒锁更适合其他用例(例如,在屏幕关闭时需要CPU继续运行的服务或后台任务).
Lia*_*rth 48
我发现这个解决方案更容易:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" // Whatever your layout is
    ...
    android:keepScreenOn="true"> // Add this line
只需将其添加到您的活动布局XML即可.
据我了解你的问题,我认为你必须WAKE_LOCK在你的应用程序中使用它.
就像是,
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");    
mWakeLock.acquire();
在你的应用程序的manifest.xml文件文件中添加这个,
<uses-permission android:name="android.permission.WAKE_LOCK" />
| 归档时间: | 
 | 
| 查看次数: | 44141 次 | 
| 最近记录: |