我有一个在某些时间处于活动状态的后台服务 - 例如当有来电时。在优化电池使用时,我注意到它的 onStartCommand() 每 10 分钟被调用一次。我不是那样做的,所以我看...
08-11 10:54:25.938: VERBOSE/com.dcd.monitor.MonitorService(32194): onStartCommand() on thread MonitorService(1)
08-11 10:54:25.938: WARN/System.err(32194): java.lang.Throwable
08-11 10:54:25.938: WARN/System.err(32194): at com.dcd.monitor.MonitorService.onStartCommand(MonitorService.java:83)
08-11 10:54:25.938: WARN/System.err(32194): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3053)
08-11 10:54:25.938: WARN/System.err(32194): at android.app.ActivityThread.access$3600(ActivityThread.java:125)
08-11 10:54:25.938: WARN/System.err(32194): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2096)
08-11 10:54:25.938: WARN/System.err(32194): at android.os.Handler.dispatchMessage(Handler.java:99)
08-11 10:54:25.948: WARN/System.err(32194): at android.os.Looper.loop(Looper.java:123)
08-11 10:54:25.948: WARN/System.err(32194): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-11 10:54:25.948: WARN/System.err(32194): at java.lang.reflect.Method.invokeNative(Native Method)
08-11 10:54:25.948: WARN/System.err(32194): at java.lang.reflect.Method.invoke(Method.java:521)
08-11 10:54:25.948: WARN/System.err(32194): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-11 10:54:25.958: WARN/System.err(32194): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-11 10:54:25.958: WARN/System.err(32194): at dalvik.system.NativeStart.main(Native Method)
现在为什么会发生这种情况?(它确实有一个部分唤醒锁)。嗯,有些事情告诉我,这是盯着我的脸,但我不明白。
在我看来,我记得读到除非需要,否则开始工作效率低下:)
谢谢..