我的WakeLock没有让我的设备保持清醒状态.
在OnCreate()我有:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "My Tag");
mWakeLock.acquire();
然后:
new CountDownTimer(1320000, 200) {
    public void onTick(long millisUntilFinished) {
        // I update a progress bar here.                                         
    }
    public void onFinish() {
        // I finish updating the progress bar.
        mWakeLock.release();
    }
}.start();
计时器结束前屏幕关闭,如何让屏幕保持可见?
mWakeLock 是一个先前声明的字段:
private PowerManager.WakeLock mWakeLock;
我的设备使用Android 1.6.我真的很感激任何帮助来解决这个问题.
Ano*_* CH 106
WakeLock通常不会导致重新启动问题.您的编码可能还有其他一些问题.如果在使用后没有释放,WakeLock会严重占用电池.
WakeLock是一种保持屏幕开启的低效方式.而是使用WindowManager来做魔术.以下一行就足够了WakeLock.为此,还需要WakeLock权限. 此代码也比wakeLock更有效.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
您无需手动重新启动WakeLock.此代码将允许Android系统自动处理锁定.当您的应用程序在Foreground中时,将保留WakeLock,否则android System会自动释放Lock.
试试这个并发表你的评论......
wf.*_*wf. 50
您是否在您的清单中设置了所需的权限?
<uses-permission android:name="android.permission.WAKE_LOCK" />
Mav*_*ick 23
你只需写这个:
 private PowerManager.WakeLock wl;
    protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNjfdhotDimScreen");
    }//End of onCreate
            @Override
        protected void onPause() {
            super.onPause();
            wl.release();
        }//End of onPause
        @Override
        protected void onResume() {
            super.onResume();
            wl.acquire();
        }//End of onResume
然后在清单文件中添加权限
 <uses-permission android:name="android.permission.WAKE_LOCK" />
现在你的活动将永远清醒.您可以w1.release()根据自己的要求做其他事情.
添加权限AndroidManifest.xml,如下所示
<uses-permission android:name="android.permission.WAKE_LOCK" />
最好在你的<application>声明标签之前,但在<manifest>标签之后,然后尝试让你的onCreate()方法只包含WakeLock实例.
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
    mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "My Tag");
}
然后在你的onResume()方法地方
@Override
public void onResume() {
   mWakeLock.aquire();
}
并在你的onFinish()方法的地方
@Override
public void onFinish() {
   mWakeLock.release();
}
保持萤幕开启
第一种方式:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
第二种方式:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>
保持CPU处于打开状态:
<uses-permission android:name="android.permission.WAKE_LOCK" />
和
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag");
wakeLock.acquire();
要释放唤醒锁,请致电wakelock.release()。这将使您向CPU提出索赔。请务必在应用程序使用完后立即释放唤醒锁,以免耗尽电池。
文档在这里。
要实现相同的程序,您可以使用以下
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
或者在布局中添加以下内容也将执行上述任务
 android:keepScreenOn="true"
您可以从以下网址http://developer.android.com/training/scheduling/wakelock.html获取详细信息
当键盘锁定时我使用了以下组合来唤醒我的屏幕并保持我的屏幕开启
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
| 归档时间: | 
 | 
| 查看次数: | 120458 次 | 
| 最近记录: |