要让Android在锁屏下继续运行,用如下的代码即可实现。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();
..screen will stay on during this section..
wl.release(); |
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();
..screen will stay on during this section..
wl.release();
在实现IP摄像头锁屏下运行时,发现这个代码没效果,锁屏后程序还是会断开连接。程序是在onCreate中调用acquire()获得WakeLock的,而在onDestory中Release()掉,并且在xml中加入了相应权限,运行也没报错,按理说有效果才对。
跟踪程序后发现,每次锁屏onDestory都会被调用,所以WakeLock就给Release了。用onDestory和锁屏两个作为关键词谷歌了一下,发现这个是由于程序在横屏下锁屏后会被“竖屏”,然后如果Activity不加android:configChanges=”orientation”就会经历一次销毁再创建的过程……
参考如下 blog.csdn.net/terrantian/article/details/18670381
解决方法如下:
在对应的Activity加入android:configChanges=”orientation|screenSize”即可。最后实现了IP摄像头在锁屏下继续工作!