Timer中的IllegalArgumentException

时间:2011-11-19 00:50:00

标签: android

我将TimerTask子类化为定期捕获图像和一些传感器数据以上传到AppEngine服务器。该应用程序在模拟器上运行完美,但在手机上加载(2.2.1)并使用Timer安排任务时,我收到以下错误:

11-18 19:32:45.810: E/AndroidRuntime(685): FATAL EXCEPTION: main
11-18 19:32:45.810: E/AndroidRuntime(685): java.lang.IllegalArgumentException
11-18 19:32:45.810: E/AndroidRuntime(685):  at java.util.Timer.schedule(Timer.java:483)
11-18 19:32:45.810: E/AndroidRuntime(685):  at com.ms.revolver.CaptureActivity$3.onClick(CaptureActivity.java:77)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.view.View.performClick(View.java:2449)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.widget.CompoundButton.performClick(CompoundButton.java:99)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.view.View$PerformClick.run(View.java:9027)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.os.Handler.handleCallback(Handler.java:587)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.os.Handler.dispatchMessage(Handler.java:92)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.os.Looper.loop(Looper.java:123)
11-18 19:32:45.810: E/AndroidRuntime(685):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-18 19:32:45.810: E/AndroidRuntime(685):  at java.lang.reflect.Method.invokeNative(Native Method)
11-18 19:32:45.810: E/AndroidRuntime(685):  at java.lang.reflect.Method.invoke(Method.java:521)
11-18 19:32:45.810: E/AndroidRuntime(685):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-18 19:32:45.810: E/AndroidRuntime(685):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-18 19:32:45.810: E/AndroidRuntime(685):  at dalvik.system.NativeStart.main(Native Method)

不确定为什么它可以在模拟器上运行但不能在手机上运行;任何想法?

1 个答案:

答案 0 :(得分:4)

它给你这个错误,因为你安排的时间是负面的。来自docs

  

抛出:       IllegalArgumentException - 如果延迟为负数,或者延迟+ System.currentTimeMillis()为负数。

尝试调试它以确保没有出现负值。