屏幕关闭时,Android“放慢速度”

时间:2011-09-19 13:24:01

标签: android service

我正在开发一款每隔30秒发布到互联网上的应用。一切正常,直到屏幕熄灭。计时器似乎已经放慢了速度。发布需要5分钟。我已经尝试过获取唤醒锁定和setforeground活动但没有任何作用。这里有什么想法吗?

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

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);  
            }  
          };  

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

3 个答案:

答案 0 :(得分:2)

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

通过USB连接设备,可以防止低功耗状态发生。

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

答案 1 :(得分:0)

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

您使用的是什么设备和ROM?

答案 2 :(得分:0)

当屏幕关闭时,我会主动为我的Android设备加速。

另外,你提到了:

  

我还尝试使用调试器检查它是什么,但是当连接USB时一切正常。

尝试使用ADB Wireless进行调试,而无需使用USB电源或仅使用日志记录。