WAKE_LOCK能否都要设置?(activity、service、broadcastreceiver)

Android 码拜 8年前 (2016-05-16) 950次浏览
1.本人在APP中分别用activity启动service、service发布broadcastreceiver。
手机锁屏后的WAKE_LOCK,能否都要在activity、service、broadcastreceiver中进行设置?
2.本人把acquireWakeLock() 放在activity的 onCreate()中,把releaseWakeLock() 放在onDestroy(),这样放置对不对?

		private void acquireWakeLock() {
			if (null == mWakeLock) {
			PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
			mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
			| PowerManager.ON_AFTER_RELEASE, "myService");
			if (null != mWakeLock) {
			mWakeLock.acquire();
			}
			}
			}
		private void releaseWakeLock() {
			 if (null != mWakeLock) {
			 mWakeLock.release();
			 mWakeLock = null;
			 }
			 }

3.上述设置后,锁屏超过20分钟后,再打开app,app就崩溃了。(锁屏后几分钟内,能正常打开app)

解决方案

80

崩溃估计是 你 的 APP数据连接设置了实时性,应该在检测到手机锁屏时就断开连接。等解锁之后重新恢复连接。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明WAKE_LOCK能否都要设置?(activity、service、broadcastreceiver)
喜欢 (0)
[1034331897@qq.com]
分享 (0)