我有一个在某些时候处于活动状态的后台服务 - 例如当有来电时。在努力优化电池使用时,我注意到它的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)
现在为什么会发生这种情况? (它确实有部分唤醒锁)。 嗯有些东西告诉我,这是在盯着我,但我没有得到它。
对我来说,我记得读到除非需要,否则启动内容效率低下。)
谢谢..