Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么持有部分唤醒锁会导致随机系统崩溃?_Android_Wakelock_Power Management_Android Wake Lock_Powermanager - Fatal编程技术网

Android 为什么持有部分唤醒锁会导致随机系统崩溃?

Android 为什么持有部分唤醒锁会导致随机系统崩溃?,android,wakelock,power-management,android-wake-lock,powermanager,Android,Wakelock,Power Management,Android Wake Lock,Powermanager,我有一个应用程序在启动时保持部分唤醒锁定,然后释放onDestroy。它会在40分钟-2小时后随机崩溃,此时设备处于闲置状态/屏幕变暗 经过一些调查,我发现在Pause上释放wake lock可以阻止此问题的发生。然而,这是不希望的,我希望锁保持在屏幕关闭时,即使 有人能告诉我是否有必要在暂停时释放唤醒锁吗?或者任何其他建议都会有所帮助 基本实施: public class myActivity extends Activity { PowerManager.WakeLock wake

我有一个应用程序在启动时保持部分唤醒锁定,然后释放onDestroy。它会在40分钟-2小时后随机崩溃,此时设备处于闲置状态/屏幕变暗

经过一些调查,我发现在Pause上释放wake lock可以阻止此问题的发生。然而,这是不希望的,我希望锁保持在屏幕关闭时,即使

有人能告诉我是否有必要在暂停时释放唤醒锁吗?或者任何其他建议都会有所帮助

基本实施:

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台不同的设备上进行了测试。这个问题主要出现在华为设备上,最新版本的安卓系统。可能是一些需要解决的问题


需要注意的事项:如果手机屏幕变暗,且您未持有wakelock,WiFi可能会死机,具体取决于设备。由于制造商的差异,WiFi锁定是一种浪费时间的行为。

您找到了解决此问题的方法吗?