【问题标题】:Android "slows down" when screen is off屏幕关闭时,Android“变慢”
【发布时间】:2011-09-19 13:24:00
【问题描述】:

我正在开发一款每 30 秒发布到互联网的应用。一切正常,直到屏幕熄灭。计时器似乎变慢了。大约需要 5 分钟才能发布。我尝试过获取唤醒锁和 setforegroundactivity,但没有任何效果。这里有什么想法吗?

它作为服务运行,我用它来唤醒锁:

PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();

这里设置前景的例子:http://developer.android.com/reference/android/app/Service.html

我还尝试使用调试器检查它可以做什么,但连接 USB 后一切正常。

更多细节: 要定期检查,我使用这个:

Private void startCheck() {
mCheckHandler.sleep(30000);
}

    private CheckHandler mCheckHandler = new CheckHandler(); 
     private class CheckHandler extends Handler {  
            @Override  
            public void handleMessage(Message msg) {  
                Pservice.this.startCheck();
            }  

            public void sleep(long delayMillis) {  
              this.removeMessages(0);  
              sendMessageDelayed(obtainMessage(0), delayMillis);  
            }  
          };  

我将它设置为每次检查互联网时获取唤醒锁。现在它工作正常 :) 感谢您的所有帮助 :)

【问题讨论】:

  • 手机没有心情让它的电池耗尽? /usefulcomment (说真的,这太模糊了。更具体地说明你是如何做事的,用小代码示例说明 - 否则我们只能猜测)
  • 您提供的链接和代码与您的问题无关。请提供更多详细信息。

标签: android service


【解决方案1】:

当屏幕熄灭时,设备最终会进入低电量状态。这种低功耗状态基本上意味着您的代码将不会被执行。需要 5 分钟的原因是因为其他应用程序正在唤醒设备,然后您的应用程序有机会再次运行。

通过 USB 连接设备,您可以防止出现低电量状态。

听起来你的唤醒锁实际上并没有被获取或者它被释放得太早了。

【讨论】:

  • 我将它设置为每次检查互联网时获取唤醒锁。现在它工作正常 :) 感谢您的所有帮助 :)
【解决方案2】:

您是否在任何其他设备、ROM、模拟器上进行过测试?有时,设备制造商代码方式的简单问题可能会导致此类问题。

你用的是什么设备和ROM?

【讨论】:

    【解决方案3】:

    当屏幕关闭时,我会积极降低我的 Android 设备的频率。

    另外,你提到:

    我还尝试使用调试器检查它可以做什么,但连接 USB 后一切正常。

    尝试在不使用 USB 电源的情况下使用 ADB Wireless 进行调试,或者改用日志记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多