尽管USB断开连接,但Android应用程序放缓了

时间:2013-11-04 07:45:25

标签: android wakelock android-wake-lock cpu-speed

我正在创建一个执行某些音频处理并实时播放的应用程序。我面临的问题是,当手机通过USB线连接到计算机时应用程序工作正常,但是当电缆断开时,音频开始跳过并弹出。断开电缆后,如果我打开屏幕,那么应用程序恢复正常行为,但一旦屏幕关闭就会再次出现问题。

对我而言,这听起来就像CPU正在进入省电模式并在连接USB电缆或屏幕打开时保持清醒,所以我尝试通过获取PARTIAL_WAKE_LOCK来纠正这种情况。然而,这没有解决问题。

有人可以告诉我这个问题是什么吗?我很确定我的唤醒代码是可以的。有没有办法让我诊断CPU是否会睡觉?

保持屏幕开启对我来说不是一个选择。

private static PowerManager.WakeLock wakeLock;

public static void acquire(Context ctx) {
    Log.d(Utils.LOG_TAG, "Trying to acquire wakelock.");
    if (wakeLock != null) 
        wakeLock.release();

    PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE);
    wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Wakelock");
    wakeLock.acquire(30 * 60 * 1000);
    Log.d(Utils.LOG_TAG, "Partial wakelock acquired.");
}

public static void release() {
    if (wakeLock != null) { 
        wakeLock.release(); 
        Log.d(Utils.LOG_TAG, "Wakelock released.");
    } else
        Log.d(Utils.LOG_TAG, "No wakelock to release.");

    wakeLock = null;
}

public static boolean getStatus() {
    if (wakeLock == null)
        return false;
    else
        return true;
}

0 个答案:

没有答案