首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RuntimeException (@android.os.PowerManager$WakeLock:release:***)

RuntimeException (@android.os.PowerManager$WakeLock:release:***)
EN

Stack Overflow用户
提问于 2015-05-20 05:11:46
回答 1查看 493关注 0票数 0

我在GoogleAnalytics中收到了20多个消息错误:

代码语言:javascript
复制
RuntimeException (@android.os.PowerManager$WakeLock:release:***)

Android OS 2.3.*

谁能解释我-如何解决这个问题&为什么应用程序崩溃?

我的代码:

代码语言:javascript
复制
private PowerManager.WakeLock wakeLock;

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    PowerManager pm = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
    wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "chat");
}
@Override
public void onStart() {
    super.onStart();
    wakeLockToggle(true);
}

@Override
public void onStop() {
    super.onStop();
    wakeLockToggle(false);
}
    private void wakeLockToggle(boolean on){
    if(wakeLock == null) return;
    try {
        if(on && !wakeLock.isHeld()){
            wakeLock.acquire(200000);
        }

        if(!on && wakeLock.isHeld()) {
            wakeLock.release();
        }
    }catch(Throwable ignore){}

}

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2015-05-20 05:48:05

在内部使用带有超时的acquire会导致WakeLock获取锁,然后使用超时值向处理程序发送延迟的release()调用。

我怀疑错误消息与WakeLock处理程序试图在200秒超时后释放WakeLock有关,而在此期间,您的片段的onStop方法已经调用并释放了锁。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30336252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档