欢迎使用优快云-markdown编辑器

修改点:对流氓软件做特殊处理,强制增加wakelock超时处理
测试建议:打开流氓软件应用,使用adb shell dumpsys power确认其持锁,2分钟后重新查看其锁消失
base/core/java/android/os/PowerManager.java | 31 +++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

diff –git a/base/core/java/android/os/PowerManager.java
— a/base/core/java/android/os/PowerManager.java
+++ b/base/core/java/android/os/PowerManager.java
@@ -1108,9 +1108,32 @@ public final class PowerManager {
public void acquire() {
synchronized (mToken) {
acquireLocked();
+ /* 20171012 add, begin */
+ /* A temporary solution for special package, it’s bad somehow */
+ if(mPackageName != null && mPackageName.equals(“com.example.businesshall”)){
+ mHandler.postDelayed(mDefReleaser, 2 * 60 * 1000);
+ }
+ /* 20171012 add, end */
}
}

  • /* 20171012 add, begin */
  • private final Runnable mDefReleaser = new Runnable() {
  • public void run() {
  • synchronized (mToken) {
  • if (mHeld) {
  • Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, mTraceName, 0);
  • try {
  • Log.v(TAG, “force release wakelock for GMS!”);
  • mService.releaseWakeLock(mToken, 0);
  • } catch (RemoteException e) {
  • }
  • mHeld = false;
  • }
  • }
  • }
  • };
  • /* 20171012 add, end */
    /**
    * Acquires the wake lock with a timeout.
    *


    @@ -1124,6 +1147,14 @@ public final class PowerManager {
    public void acquire(long timeout) {
    synchronized (mToken) {
    acquireLocked();

  • /* 20171012 add, begin */
  • /* A temporary solution for special package, it’s bad somehow */
  • if(mPackageName != null && mPackageName.equals(“com.example.businesshall”)){
  • if(timeout >= 5 * 60 * 1000){
  • timeout = 5 * 60 * 1000;
  • }
  • }
  • /* 20171012 add, end */
    mHandler.postDelayed(mReleaser, timeout);
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值