[英]How to use the PowerManager and PARTIAL_WAKE_LOCK
我开发了一个小应用程序,当设备处于睡眠或深度睡眠状态时(必须按下右键关闭屏幕),该应用程序必须始终运行在所有应用程序上,我阅读了很多有关此应用程序的信息,并且都告诉我方法是使用PowerManager,我的问题是,如果我使用此命令正确,我的结构是> myActivity.class,ReceiverBoot.class和ServiceBoot.class,我在myActivity.class上使用POwerManager类,如下所示:
PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
PowerManager wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP , "MyWakeLock");
放在onCreateMethod之后
wakeLock.acquire();
在这之后我有一个
super.onCreate(savedInstanceState);
this.mTimer.scheduleAtFixedRate(
new TimerTask(){
@Override
public void run(){doTask();}
} , 0, 1000);
wakeLock.release();
在清单XML代码上
<uses-permission android:name="android.permission.WAKE_LOCK" />
并在布局上的XML代码具有
android:keepScreenOn="true"
但是直到10seg crees总是关闭,但应用程序正在运行时,才可以使用wifi进行投影。
该应用程序可以很好地与wifi conn一起工作,但是当更改为3G conn时,该应用程序不见了,我使用了此命令。 问题是连接到Internet的那种方式??? 非常感谢!
我不清楚您的问题。 无论是数据问题还是屏幕问题。 (或者如果屏幕问题是您要尝试解决的数据问题?)。
对于屏幕
您没有使用向右锁来保持屏幕打开。 PARTIAL_WAKE_LOCK
仅请求您可以使用处理器。 要使屏幕保持在您的应用程序上,请根据您的需要使用SCREEN_DIM_WAKE_LOCK
, SCREEN_BRIGHT_WAKE_LOCK
或FULL_WAKE_LOCK
。 该锁应在您需要的时间内一直保持。 当前,您正在onCreate()中释放它。 请记住,即使释放了锁定,用户仍按下电源按钮(PARTIAL除外)。
如果您只是想在视图处于活动状态时保持屏幕打开,则最好不要使用该锁定。 唤醒锁需要额外的权限。 您可以通过将其添加到onCreate
重写中来实现:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
这与使用android:keepScreenOn="true"
效果相同,您似乎已经在这样做了。 但是,从您的片段中我无法分辨出为什么这不起作用。 确保您要充气正确的布局。
为您的数据
当屏幕不活动(并且不存在锁定)时,设备可能会关闭3G数据。 同样,不要在需要时释放锁(尽管也不要永远保持它的锁,这只会消耗手机电池的电量)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.