繁体   English   中英

为什么持有PARTIAL_WAKE_LOCK会导致随机系统崩溃?

[英]Why holding PARTIAL_WAKE_LOCK causing random system crash?

我有一个应用程序在启动时持有PARTIAL_WAKE_LOCK,然后释放onDestroy。 随机放置40分钟-2小时后,它会随机崩溃,仅在设备闲置2天/屏幕变暗时。

经过一些调查,我发现释放onPause唤醒锁可以阻止此问题的发生。 但是,这不是所希望的,即使屏幕关闭,我也希望锁保持打开状态。

谁能告诉我释放onPause唤醒锁是否必要? 或任何其他建议会有所帮助。

基本实现:

public class myActivity extends Activity {

    PowerManager.WakeLock wakeLock;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
        wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WakeLock");
        wakeLock.acquire();

    }

    @Override
    public void onDestroy() {
        if (wakeLock.isHeld()) {
            wakeLock.release();
        }

        super.onDestroy();
    }
}

看来设备之间会发生变化。 我怀疑可能是由于制造商/套装软件可能杀死线程。

我在大约5种不同的设备Huawei和Samsungs上进行了测试。 该问题主要出现在华为设备上,即较新版本的Android。 可能需要解决的问题。

注意事项:如果手机屏幕变暗并且未保持唤醒锁,则WiFi可能会死机,具体取决于设备。 由于制造商的差异,WiFi锁是浪费时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM