我在自定义的service中使用了一个Timer,
timer.schedule(new MyTimerTask(), delay * 1000, 60 * 1000);
加入该语句之后无法启动服务,注释掉该语句之后就可以启动服务了。求高手指教。
错误如下:10-18 23:58:33.024: E/AndroidRuntime(1467): FATAL EXCEPTION: main
10-18 23:58:33.024: E/AndroidRuntime(1467): java.lang.RuntimeException: Unable to start service net.samming.alarm.service.MyAlarmService@40518e40 with Intent { cmp=net.samming.alarm/.service.MyAlarmService }: java.lang.NullPointerException: println needs a message
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2027)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.app.ActivityThread.access$2800(ActivityThread.java:117)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:991)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.os.Looper.loop(Looper.java:123)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.app.ActivityThread.main(ActivityThread.java:3647)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at java.lang.reflect.Method.invokeNative(Native Method)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at java.lang.reflect.Method.invoke(Method.java:507)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at dalvik.system.NativeStart.main(Native Method)
10-18 23:58:33.024: E/AndroidRuntime(1467): Caused by: java.lang.NullPointerException: println needs a message
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.util.Log.println_native(Native Method)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.util.Log.i(Log.java:158)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at net.samming.alarm.service.MyAlarmService.onStart(MyAlarmService.java:76)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.app.Service.onStartCommand(Service.java:428)
10-18 23:58:33.024: E/AndroidRuntime(1467):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2014)
10-18 23:58:33.024: E/AndroidRuntime(1467):  ... 10 more
其中为了查看错误,
try {
timer.schedule(new MyTimerTask(), delay*1000, 60*1000);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i("ALARM",e.getMessage());
}
我用try-catch包围了timer执行语句,MyAlarmService.java:76就是Log.i()这一行